空前の 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 にまとめて設定するので、気になります ><