Cisco ACI の設定は通常、Web UI で十分に事足ります。しかし、「大量の項目を効率よく設定したい」「作業を自動化したい」という場合はスクリプト (プログラム) を活用するのが便利です。スクリプトから ACI にアクセスする為の手段も幾つかあるのですが、Python を使って簡単なスクリプトから ACI を操作出来る acitoolkit の使い方を覚えておくと便利です。acitoolkit を自分の環境にインストールしてしまうのもひとつの方法ではあるのですが、Docker イメージを使う方法も手軽でオススメです。
ACI へアクセスする手段
ACI へアクセスする手段を表にまとめると概ね以下だと思います。ここにリストアップしたツールでは出来ないような、高度な機能を利用したい場合は UCS Director を利用することになると思います。acitoolkit は「UCS Director を導入する程では無いが、少し自動化にチャレンジしたい」といった場合に有力な選択肢のひとつだと思います。
No. | 方法 | 標準で付属しているのか? | 備考 |
---|---|---|---|
1 | Web UI | ◯ | 専門的なコマンドを覚えなくても、ブラウザとマウスで操作可能 |
2 | CLI | ◯ | 専門的なコマンドを覚える必要がある |
3 | API Inspector | ◯ | 実行されたコマンドの REST API 呼び出しを確認することが出来る |
4 | Visore | ◯ | GUI で MIT (Management Information Tree) を確認出来る |
5 | Cobra SDK | ◯ | Pytyon を使って自動化出来る |
6 | APIC Rest to pYthon Adapter | X | 「arya is a tool that will convert APIC object documents from their XML or JSON form into the equivalent Python code leveraging the Cobra SDK.」とのこと |
7 | acitoolkit | X | 簡単な Python スクリプトで ACI を操作出来る |
acitoolkit の Docker イメージを開始する
acitoolkit のインストール済み Docker イメージも公開されているので、利用は簡単です。以下のように実行すればコンテナが起動します。
docker run -it dockercisco/acitoolkit
実際の実行例は以下ようになると思います。初回は Docker イメージを pull しますので、コンテナの起動までやや時間がかかると思います。2 回目以降は数秒でコンテナが起動すると思います。
$ docker run -it dockercisco/acitoolkit
Unable to find image 'dockercisco/acitoolkit:latest' locally
latest: Pulling from dockercisco/acitoolkit
8aec416115fd: Already exists
695f074e24e3: Already exists
946d6c48c2a7: Already exists
bc7277e579f0: Already exists
2508cbcde94b: Already exists
59428ac89915: Pull complete
fa05f6bef4b9: Pull complete
7c7fc940e2d0: Pull complete
49542e13f86e: Pull complete
ff40e4938a23: Pull complete
Digest: sha256:0939013baeb127a96dd67ca6729895bfe3501458698a79043a0b11a2afa201f6
Status: Downloaded newer image for dockercisco/acitoolkit:latest
root@0dea7b164a0a:/opt/acitoolkit#
ACI へアクセスする為の資格情報を用意する
acitoolkit から ACI へアクセスする際、毎回資格情報(ログイン情報)を求められます。これを省略する為に acitoolkit を利用するスクリプトと同じディレクトリに credentials.py というファイルを以下のような内容で作成します。
LOGIN = "admin"
PASSWORD = "password"
URL = "https://10.0.0.1"
但し、現時点の Docker イメージには vim のようなエディタがインストールされていないようなので、以下のようにリダイレクトで credentials.py を作成します。
echo 'LOGIN = "admin"' > /opt/acitoolkit/samples/credentials.py
echo 'PASSWORD = "password"' >> /opt/acitoolkit/samples/credentials.py
echo 'URL = "https://10.0.0.1"' >> /opt/acitoolkit/samples/credentials.py
サンプルを実行する
credentials.py が用意出来たらサンプルを実行してみます。最も簡単なサンプルのひとつである、テナントの一覧を表示する「aci-show-tenants.py」を実行してみます。
# cd /opt/acitoolkit/samples
# python aci-show-tenants.py
TENANT
------
common
infra
mgmt
意図した通り、テナントの一覧が表示されました。
より小さな Docker コンテナを利用する
若干… ではありますが、イメージを小さくした Docker イメージを用意しました。公式イメージは Ubuntu ベースなのですが、よりイメージを小さくする為に Alpine ベースでイメージを作成したものも用意しました。
現時点で各々のイメージサイズは以下の通りです。
イメージ名 | サイズ | 備考 |
---|---|---|
dockercisco/acitoolkit | 606MB | acitoolkit 公式イメージ |
sig9/acitoolkit | 593MB | 公式イメージに vim-tiny を追加したイメージ |
sig9/acitoolkit-alpine | 515MB | Alpine ベースで作成したイメージ |
docker images で確認した結果は以下の通りです。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
sig9/acitoolkit-alpine latest 2d6491f29f72 22 hours ago 515 MB
sig9/acitoolkit latest 99e4bc10840c 22 hours ago 593 MB
dockercisco/acitoolkit latest 4be477b36e0c 7 days ago 606 MB
コメント