概要: DevOps って自動化が超重要だよねー!
先日、
- [[個人用途の VPS の管理を Docker ベースにした /post/66636256465]]
という記事にも書いた通り、僕の個人的な Web Site or Service や、 あるいは IRC 関係のデーモンなんかは、
- Digital Ocean の最小インスタンス
- Docker with Ubuntu 13.04
で管理しているのですが、このリモートの Docker サーバでの、 Docker container の build や、 Docker container を起動する upstart ファイルの配置なんかは、実は、
_人人人人人人_ > 全部手動 <  ̄ Y^Y^Y^Y^Y  ̄
でやっておりました。
で、僕自身としては DevOps という文脈において、 手動での Ops の管理は、 絶対に信頼すべきでなく 、 また 必ず自動化するべきである 、という考えを持っていて、 自動化必須だろボケカスとか自分に対して思ったので、 今回、
という、
- リモートでの 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-deploy
is under the public domain
としました。 僕としては、あとはもう本当に自由にいじり倒してください! という感じですね。
あとまあ細かいところのデキ加減とか微妙な感じな所もあるので、 もしここ直してーとか、あるいはここ直したよーとか有れば、
で Issue 立てるとか、あるいは Pull Request 送るとかでお願いします。
ということで、今日の朝っぱらから書いている記事は以上です。 何か分からん事があったら、IRC とか Lingr とか Twitter とかで、
- @nyarla
まで話かけてもらえればと思います。
というわけで以上、終わります。
#FIXME