概要: DevOps って自動化が超重要だよねー!
先日、
という記事にも書いた通り、僕の個人的な Web Site or Service や、 あるいは IRC 関係のデーモンなんかは、
- Digital Ocean の最小インスタンス
- Docker with Ubuntu 13.04
で管理しているのですが、このリモートの Docker サーバでの、 Docker container の build や、 Docker container を起動する upstart ファイルの配置なんかは、実は、
_人人人人人人_ > 全部手動 <  ̄ YYYYY  ̄
でやっておりました。
で、僕自身としては DevOps という文脈において、 手動での Ops の管理は、 絶対に信頼すべきでなく 、 また 必ず自動化するべきである 、という考えを持っていて、 自動化必須だろボケカスとか自分に対して思ったので、 今回、
https://github.com/nyarla/docker-deploydocker-deploy
という、
- リモートでの Docker container のビルド
- 及び、Docker container 管理の自動化を行う設定ファイルの配置
を、全自動でやってくれるスクリプトを、
昨日まる一日かけて 書きました。
で、使い方としては、 README.md にも書いた通り、
$ curl -O https://raw.github.com/nyarla/docker-deploy/master/docker-deploy $ chmod +x docker-deploy
した後、
# docker containerのビルド $ docker-deploy --build --sudo \ --user core \ --host dev.sandbox.local \ --tagprefix nyarla \ /path/to/dockerfile/repository # docker containerの自動起動化 $ docker-deploy --deploy --sudo \ --user core \ --host dev.sandbox.local \ --tagprefix nyarla \ --supervisor upstart \ /path/to/dockerfile/repository
という感じで使えるのですが、いかんせんコマンド名長いし、 コマンドオプションも長いので、僕はコマンド一発実行ができるように、
USER = core HOST = dev.sandbox.local TAG = nyarla OPTS = --user $(USER) --host $(HOST) --tagprefix $(TAG) SUPERVISOR = upstart all: build deploy build: docker-deploy --build --sudo $(OPTS) deploy: docker-deploy --deploy --sudo --supervisor $(SUPERVISOR) $(OPTS)
という感じのMakefileを書いて、
# Docker containerのビルド $ make build # Docker containerのデプロイ $ make deploy
という感じで、make一発で build && deploy ができるようにしています。
で、ちなみにこのスクリプト、皆に広く使ってもらいたかったし、
また、こういう DevOps 界隈において、
これってかなり便利じゃね? みたいなスクリプトに、
ライセンスが云々するのもなんだか気乗りしなかったので、
とりあえずdocker-deployに関しては、
docker-deployis under the public domain
としました。 僕としては、あとはもう本当に自由にいじり倒してください! という感じですね。
あとまあ細かいところのデキ加減とか微妙な感じな所もあるので、 もしここ直してーとか、あるいはここ直したよーとか有れば、
https://github.com/nyarla/docker-deploynyarla/docker-deploy
で Issue 立てるとか、あるいは Pull Request 送るとかでお願いします。
ということで、今日の朝っぱらから書いている記事は以上です。 何か分からん事があったら、IRC とか Lingr とか Twitter とかで、
- @nyarla
まで話かけてもらえればと思います。
というわけで以上、終わります。