私はHP C7000シャーシのOnboard Adminに接続し、すべてのブレードサーバをリストし、名前に基づいてベイIDを決定し、内部スイッチをリストするために使用しますポートID。任意の出力をテーブルまたはリストに変換するPython
ログインしてスクリプトの2番目の部分(実際のポートマップを表示)を実行した後。レスポンスバッファにはこの長い文字列が含まれます。彼らはベイIDが含まれているため、私にとって興味深いのは何
b'show server port map 1\r\n Mezz\r\nMezz Mezz Device Port Interconnect Interconnect\r\nSlot Device Port Status Bay Bay Port Device ID\r\n---- ------ ------ ---------- ------------ ------------ ----------------\r\n\r\n------------------------------- Blade 001 -------------------------------\r\n\r\n 1 QLogic QMH2562 8Gb FC HBA for HP BladeSystem c-Class\r\n Port 1 OK Bay 3 Port 1 50:01:43:80:21:db:8c:54\r\n Port 2 OK Bay 4 Port 1 50:01:43:80:21:db:8c:56\r\n\r\n 2 Not Present\r\n\r\n 3 Not Present\r\n\r\n FlexFabric Embedded Ethernet\r\n Ethernet (NIC 1) LOM:1-a OK Bay 1 Port 9 00:9C:02:AA:8C:58\r\niSCSI HBA (iSCSI 1) LOM:1-b OK Bay 1 Port 9 00:9C:02:AA:8C:59\r\n FCoE HBA LOM:1-b OK Bay 1 Port 9 10:00:00:9C:02:AA:8C:59\r\n Ethernet (NIC 2) LOM:2-a OK Bay 2 Port 9 00:9C:02:AA:8C:5C\r\niSCSI HBA (iSCSI 2) LOM:2-b OK Bay 2 Port 9 00:9C:02:AA:8C:5D\r\n FCoE HBA LOM:2-b OK Bay 2 Port 9 10:00:00:9C:02:AA:8C:5D\r\n Ethernet (NIC 5) LOM:3-a OK Bay 1 Port 1 00:9C:02:AA:8C:60\r\niSCSI HBA (iSCSI 3) LOM:3-b OK Bay 1 Port 1 00:9C:02:AA:8C:61\r\n FCoE HBA LOM:3-b OK Bay 1 Port 1 10:00:00:9C:02:AA:8C:61\r\n Ethernet (NIC 6) LOM:4-a OK Bay 2 Port 1 00:9C:02:AA:8C:64\r\niSCSI HBA (iSCSI 4) LOM:4-b OK Bay 2 Port 1 00:9C:02:AA:8C:65\r\n FCoE HBA LOM:4-b OK Bay 2 Port 1 10:00:00:9C:02:AA:8C:65\r\n[[email protected] ~]$ '
.decode(「UTF-8」)でこれをフォーマットすると、私は読みやすく、人間の出力が得られます
は、MACアドレスを持つラインであり、ポートID。要するに、出力を個々の行に分割し、MACアドレスを含むフィルタに基づいてフィルタをかけ、興味のある情報(Bay IDとPort ID)を抽出したいと考えています。物事を難しくするために、出力はわずかこのような異なるフォーマットを持つことができます:
これにアプローチするための最良の方法だろうか?
はgrepをしようとしたしましたか? 'grep -E 'mac1 | man2 | macN' – geckos
これは* nix環境ではうまくいくと思いますが、私はこのpythonスクリプトの中にいたいと思います。この出力を使って別の操作を実行したいと思います。各ブレードスイッチのこれらのポートにVLANを設定します。 – Maros