Cisco ACI で APIC / Leaf / Spine の CLI から利用可能なコマンドを一覧表示する
以前に CIsco ACI で「show cli list」を使って利用可能コマンド一覧を出力する というメモを書きました。 ACI 4.2(2e) がリリースされていたので、このバージョンで APIC / Leaf / Spine の show cli list
出力を取得し直したのですが、コマンドを全部貼り付けたところ、はてなブログ上で「行数が多すぎる」とエラーになってしまいました… 全コマンドを貼り付けるのは断念し、改めて show cli list
に関する注意書きだけ追記しておきます。 ACI バージョンには依存しない内容になっていると思いますが、CLI の実行例は ACI 4.2(2e) 上で取得しました。
注意点¶
show cli list
コマンドの注意点について記載しておきます。
iShell 上では実行できない (vsh 上から実行する)¶
Cisco ACI ではログインシェルとして iShell と呼ばれるプログラムが起動します。 ですが (APIC では実行可能なのですが) Leaf / Spine では iShell から show cli list
コマンドが存在せず、実行することが出来ません。 その為、Leaf / Spine の場合は従来の NX-OS でも利用されている vsh (Virtual Shell) を起動し、その後に vsh 上から show cli list
を実行します。 vsh 実行時は User should use ibash infrastructure as this will be deprecated.
と表示され、以前は iBash と呼んでいたような気がするのですが、現在はドキュメントを調べても (iBash では無く) iShell と書かれているものしか見かけないように思います (定かなことは分かりません…)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
iShell からの間接的実行も出来ない¶
vsh のコマンドであっても、iShell 上から vsh 起動時に -c
オプションでコマンドを指定することで間接的に実行することが出来ます (iShell 上から vsh を起動し、指定コマンドを実行したら vsh を終了して iShell に戻ります。 従って vsh を起動 / 終了する時間、待たされます)。
1 2 |
|
しかし、なぜか show cli list
は iShell 上から vsh へ -c
オプション経由で起動してもエラーになるわけでも無いのですが実行結果が表示されません。
1 2 |
|
その為、show cli list
を実行する際は「vsh を起動する」「show cli list
を実行する」という、2 ステップを経る必要があります。
terminal length
を指定すると結果が表示されない¶
Leaf / Spine の場合、vsh 上からでなければ show cli list
を実行出来ないことは上述の通りです。 更にもう一点、vsh 上であっても terminal length
が指定された状態だとなぜか show cli list
の実行結果が表示されません。 下記ではゼロを指定していますが、他の数字を指定しても同様のようです。
1 2 3 |
|
この現象は「vsh を起動しなおす (exit
してから再度、vsh
する) か、もしくは terminal no length
で設定を打ち消せば解消します。
1 2 3 4 5 6 7 8 9 10 |
|
no-more
を指定すると実行結果が表示されない¶
terminal length
が指定されていると実行結果が表示されない、と上述しましたが、terminal length
指定の有無と関係なく、no-more
を指定するとやはり実行結果が表示されません。
1 2 |
|
show cli list
の使いどころ¶
show cli list
は「全部眺める」というより、例えば「何かのコマンドを探す」という用途に向いています。
例.1 - APIC でエンドポイントの削除関連コマンドを探してみる¶
例えば「APIC 上からエンドポイントテーブルを削除するコマンドを探したい」というケースを考えます。 この場合は「削除 → clear
」「エンドポイントテーブル → endpoint
」とあたりをつけて以下のように grep でキーワードを絞って検索してみます。
1 2 3 4 |
|
「それっぽいコマンド」が見つかれば、本当にそのコマンドで当初の目的が達成出来そうか、コマンドリファレンス等を調査します。 ちなみに Leaf 上からエンドポイント情報を削除したい場合は Cisco ACI で EndPoint を手動でクリアする に記載のある通り、以下のコマンド等で削除可能です。
該当 Leaf 上の全エンドポイント情報を削除したい場合¶
1 |
|
該当 Leaf 上の特定エンドポイント情報のみ、削除したい場合¶
1 |
|
例.2 - Leaf 上で OSPF 関連のクリアコマンドを探してみる¶
次は Leaf 上で OSPF 関連のクリアコマンドを探してみます。 先ほどのケースと同様に「clear
」「ospf
」といった具合でキーワードのあたりをつけ、grep
で絞り込んでいきます。
1 2 3 4 5 6 7 8 9 10 11 |
|
コマンドの数 (目安)¶
APIC / Leaf / Spine 各々の、凡そのコマンド数は下記の通りです (※ 正確な値ではありません)。
対象 | コマンド数 | 確認したシェル |
---|---|---|
APIC | 4,651 | iShell |
Leaf | 45,628 | vsh |
Spine | 36,694 | vsh |
確認方法は以下の通りです。 単純に wc
で行数を数えているだけなのですが、コマンドによっては「1 コマンドだが、複数行の出力」になるものがある為、「1 コマンド ≠ 1 行」である為、上記の数字は「凡その概算」ということになります。
1 2 3 4 5 6 7 8 |
|