Cisco ACI にはアプリケーションを追加出来る「AppCenter (Apps)」という仕組みがあります。 Cisco Live! でお披露目されたサンプルアプリケーションが GitHub で BRKACI-2945-CLUS Demo Application として公開されているようなので、実際にビルドしてみました。
前提条件
今回は CentOS 7.6.1810 (64bit) を使いました。 また、事前に以下のソフトウェアはインストールしておきます。 Python のバージョンは 2.7.16 を使いました。
- Docker
- pip
- pyenv
- Python は 2.x 系であること (3.x 系ではエラーになる…)
デモアプリケーションのビルド
デモアプリケーションを GitHub から clone します。
git clone https://github.com/datacenter/BRKACI-2945-CLUS
cd BRKACI-2945-CLUS/
次に pyenv でデモアプリケーションをビルドする環境を作ります。 今回はここで Python 2.7.16 をインストールしました。
pyenv install 2.7.16
pyenv virtualenv 2.7.16 clus
作成した環境を activate します。
pyenv activate clus
Apps を作成する為のツールを pip でインストールします。
pip install build/app_package/cisco_aci_app_tools-1.1_min.tar.gz
これで準備 OK です。 ビルド用スクリプトも準備されているので、実際にアプリケーションをビルドしてみます。 スクリプトを実行すると、ビルド用の Docker イメージのダウンロードが開始され、自動的にアプリケーションのビルドが進みます。
./build/build_app.sh
しばらく待つと以下のように表示され、デモアプリケーションのビルドが完了しました。
Validation of mandatory files and directories successful
Retrieving app meta data successful
Validation of app meta data successful
App successfully packaged - /tmp/appbuild/Cisco-CLUS-1.1.aci
2019-04-03T16:51:39 build complete: /tmp/appbuild//Cisco-CLUS-1.1.aci
完成したアプリケーションのサイズは約 350MB でした。
# ls -lh /tmp/appbuild//Cisco-CLUS-1.1.aci
-rw-r--r-- 1 root root 354M 4月 3 16:51 /tmp/appbuild//Cisco-CLUS-1.1.aci
あとは完成したアプリケーション (.aci ファイル) を Cisco ACI に格納すれば利用可能になります。
Python 3.x でビルドした場合のエラー
Python 3.x で build.sh
を実行した場合、以下のエラーになってしまいました。
2019-04-03T16:29:14 saving docker container image to application
2019-04-03T16:31:56 packaging application
File "/tmp/appbuild//CLUS.build/cisco_aci_app_tools-1.1_min/tools/aci_app_packager.py", line 56
print str(msg)
^
SyntaxError: invalid syntax
コメント