らくがきちょう

なんとなく

Cisco Live! で公開された Cisco ACI 用のサンプルアプリケーションをビルドする

Cisco ACI にはアプリケーションを追加出来る「AppCenter (Apps)」という仕組みがあります。 Cisco Live! でお披露目されたサンプルアプリケーションが GitHubBRKACI-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  43 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