昨日の Build 2017 Keynote で Scott Hanselman がデモをしていた Azure Cloud Shell が、自分のサブスクリプションでもやっと使えるようになったので、最近はまっている ACS Engine をインストールしてみました。
前に試した時は Docker を使ってサクッと動かしましたが、Azure Cloud Shell 自体が Docker 内で動いているようなので、今回は手動でビルドしてみました。
ただし Azure Cloud Shell には予め git と go が入っているので手順は少ないです。
後はドキュメントに書いてある通り、GOPATH が定義されていないので .profile を弄ったり、go get で acs-engine と関連するパッケージをダウンロードしてきたりします。
go get all を実行すると一部エラーになりましたが、ビルドと実行は問題なかったので今回はスルーしました。もうちょっと調べたいところではありますが。
ACS Engine のコードは $GOPATH/src/github.com/Azure/acs-engine に保存されているので、そこまで移動してから go build を実行すると acs-engine が完成です。
コマンドを実行すると問題なく動作することが確認できます。これでインストールは完了です。
Azure Cloud Shell は vim などのエディタも使えるので、最後に実際に ARM Template を ACS Engine で生成してみたいと思います。examples にある json を適当に選びます。
Managed Disk で楽したいので、Swarm + VMSS + Managed Disk なサンプルを選びました。
dnsPrefix と SSH Key は必須なので、エディタで修正しておく必要があります。修正したファイルを acs-engine に食わせると、ARM Template 一式が生成されます。
この ARM Template をデプロイする方法は前回書いたのと全く同じです。
しかも Azure Cloud Shell には Azure CLI 2.0 がログインされた状態でインストール済みなので、ACS Engine を使ったテンプレート生成から、Azure へのデプロイまで完結させることが出来ます。
ログイン済みというのが最高に便利ですね。Azure CLI 2.0 になって Python が必要になったので、Windows に入れるのが面倒だったのですが、大体のことは Azure Cloud Shell で賄えそうです。
まだ iOS 版 Azure アプリからの Cloud Shell は有効になってません。アプリの更新を待ちたいと思います。