0%

DashingとTreasure Data - Part5: CoreOSへデプロイ

Part1,Part2,Part3Part4に続いてTreasure DataのサンプルアプリをCoreOSにデプロイします。
IDCFクラウドに構築したCoreOSunit fileをsystemdに登録して、CoreOSのリブート後もコンテナが起動するように設定します。

少しずつdisposableな環境ができてきました。

CoreOSへデプロイ

CoreOSのインスタンスにSSHで接続します。

$ eval `ssh-agent`
$ ssh-add ~/.ssh/private_key
$ ssh -A core@coreos-v3
CoreOS (beta)

CoreOSのsytemdに登録するunit filesのディレクトリは以下です。

/etc/systemd/system

ここにDashingのunit fileを作成します。
ExecStartのdocker runは、--rmオプションを追加して、コンテナ停止後に削除されるようにします。
これを指定しないと、CoreOSがrebootしたときにコンテナが重複して起動しなくなります。この辺がdisposableな感じです。

/etc/systemd/system/dashing.service
[Unit]
Description=Dashing Service
Requires=docker.service
After=docker.service

[Service]
ExecStart=/usr/bin/docker run --rm \
--name %n \
-p 80:80 \
--name dashing \
-e TD_API_KEY=xxx \
{private registryのホスト}:5000/dashing /sbin/my_init
ExecStop=/usr/bin/docker stop %n

[Install]
WantedBy=local.target

systemctlコマンドを使い、unit fileをsystemdに登録します。

$ sudo systemctl enable /etc/systemd/system/dashing.service
ln -s '/etc/systemd/system/dashing.service' '/etc/systemd/system/local.target.wants/dashing.service'
$ sudo systemctl start dashing.service

まとめ

CoreOSがrebootした後も、コンテナが起動しているところまでdisposableな環境ができました。

次は、Building Your First App on CoreOS: Start to Finishの参考にしながら、fleetとfigを使ってIDCFクラウド上にCorOSクラスタを構築していみます。