2017/06現在、TutumはDocker社に買収され、Docker Cloudになっています。
この記事を読むと、Docker Hubリポジトリに変更がpushされるたびに、Azure上のホストVMに新しいDockerイメージをデプロイできるようになります。
Dockerリポジトリの変更を受け、TutumでDockerコンテナーをリデプロイ中
DevOpsしてみたくて、JenkinsからDocker HubへイメージのPushは出来た、だけどそのあとJenkinsからクラウド上のホストVMにDockerイメージをデプロイできない…
そんな状況だったので、DevOpsエヴァンジェリストの牛尾さん(@TsuyoshiUshio@github)に教えていただいたTutumというサービスを使ってみました。
Tutum
https://www.tutum.co/
Tutumで予めホストVMを立ち上げておき、Docker Hubにhookの設定をしておけば、イメージがDocker HubにPushされるたびに自動デプロイが行われます。
この記事ではAzureリソースに対する自動デプロイを設定します。
AWSに対するデプロイについては、以下の記事がありました。
Dockerコンテナを手軽にデプロイしてくれるサービス「Tutum」を試してみた
http://qiita.com/honeniq/items/a4b655e9a92d1fe84ffb
Tutum is 何
TutumはDocker社が買収したDockerコンテナーを管理するクラウドサービスです。2015年11月現在βサービスで基本的な使い方は無料です。
DockerがTutumを買収してコンテナアプリケーションの稼働管理サービスを充実
http://jp.techcrunch.com/2015/10/22/20151021docker-acquires-cloud-startup-tutum-for-container-shipping-and-management/
Tutumの利用を開始する
TutumはDocker Hubのアカウント情報を使ってログインできます。
アカウントはDocker Hubですが、パスワードは改めて決めます
TutumとAzureと連携する
Tutumにログイン後、Acount infoの「Cloud Providers」からAzureと認証を行います。
https://dashboard.tutum.co/account/
Azureの項目の「Add Credentials」ボタンを押下することで、入力画面が開きます
「Download〜〜」ボタンを押下することでAzureに登録するためのcerファイルをダウンロードできます。ボタンの下のサブスクリプションIDフィールドにAzure PASSのサブスクリプションを入力して「Save〜〜」を押下すればTutum側の連携は完了です。
Azure側の連携とは上記でダウンロードしたcerファイルをAzureの旧ポータル画面の「設定」 ->「管理証明書」からアップロードすれば終わりです。
ちなみにAzureプレビューポータルからAzure旧ポータルへの遷移の仕方は、右上のアカウント情報をクリックした際に出てくる「Azureポータル」ボタンです。プレビューポータルからcerファイルあげる場所、よくわからない…
TutumにNode(デプロイ用のホストVM)を作成する
認証が終わったらあとはデプロイの設定を行うだけです。ここで用語の説明をしておくと、TutumではホストVMをNode、デプロイするDockerイメージをServiceと呼びます。本格的に使う場合は、スケーリングなどの設定もできるようです。
Node管理画面
https://dashboard.tutum.co/node/launch/
画面左上の「Nodes」タブを押下したあと、「Launch new node cluster」ボタンから新しいNodesクラスターを作成します。適切な設定をしたあと右下の「Launch node cluster」を押下すればデプロイ用のVMが作成されます。 注意する点としては、作成後のNodeのステータスが「Deploying」から「Deployed」になるまで利用できません。
TutumにService(Dockerコンテナー)を登録する
ServiceタブからデプロイしたいDocker hub上のコンテナーリポジトリを登録します。
Service管理画面(URLがコンテナー)
https://dashboard.tutum.co/container/list/
「Create Service」を押下すると、「Image selection」画面に遷移しますが、ここで、「Public repositories」タブを選択するとDocker Hubからデプロイするイメージを選択できます。
あとはポチポチしていくだけですが、Webアプリのコンテナーの場合、「Ports」の設定で「Published」にチェックを入れないと当然アクセスできません。
Docker HubにTutumのTrigger URLを登録する
ここまでくればもうほぼ完了です。作成したServiceを選択すると、画面中央に並ぶメニューから「Triggers」タブを開きます。
そこで適当な名前で「redeploy」タイプのTriggerを「Add」ボタンで作成すると、URLが生成されます。
このURLをDocker HubのリポジトリにあるWebhooksタブに登録して完了です。
以上でDocker Hubリポジトリに変更があるたびに、TutumがAzureのホストVMに対して新しいDockerイメージをデプロイしてくれるようになりました!!
参考
Dockerコンテナを手軽にデプロイしてくれるサービス「Tutum」を試してみた
http://qiita.com/honeniq/items/a4b655e9a92d1fe84ffb