空前の deploy tool ブームの中いかがお過ごしでしょうか。
以下のような Plagger マルパクリな YAML で設定します。
プラグインは
運用ツールを作るときに Plagger みたいにプラグイン機構にするってのはいいですね。
後から機能追加するのも楽だし、プラグイン毎にテスト出来るので。
あと、内部で使ってる Net::SSH::Perl がステキです。インストールめんどいですけど。
http://blog.nomadscafe.jp/archives/000704.html
http://d.hatena.ne.jp/tokuhirom/20060929/1159495175
以下のような Plagger マルパクリな YAML で設定します。
プラグインは
- prepare - 下準備 svn co とか
- process - サーバの台数分だけループで呼ばれる。rsync とか
- finalize - 後片付けとかログ出力とか
運用ツールを作るときに Plagger みたいにプラグイン機構にするってのはいいですね。
後から機能追加するのも楽だし、プラグイン毎にテスト出来るので。
あと、内部で使ってる Net::SSH::Perl がステキです。インストールめんどいですけど。
global:
user: hoge
repository: http://svn.example.com/proj/trunk
deploy_to: /path/to/proj
work_dir: /path/to/proj
svn: /usr/local/bin/svn
roles:
web:
- XXX.XXX.XXX.XXX
app:
- XXX.XXX.XXX.XXX
tasks:
setup:
target: app
plugins:
- module: RemoteExec
config:
command: mkdir -m 0755 -p /path/to/cache_dir
deploy:
target: app
plugins:
- module: SVN::Checkout
- module: RemoteExec
config:
user: root
command: /usr/local/modperl/bin/modperlctl stop
- module: Deploy
config:
- module: RemoteExec
config:
user: root
command: /usr/local/modperl/bin/modperlctl start
- module: Notify::Email
config:
to: developers@example.com
うちのものは、一個の config.yaml にまとめて設定するので、気になります ><