Capistranoの備忘録

Capistrano自体はレシピファイルの中でRubyでゴリゴリ書けそうな気配ですが、 出来る限りスッキリさせたいもので。   自分が担当しているシステムは何十台も並べて~的な感じで、 群構成にしているのですが、xxだったらxxみたいなのがかったるいな、と。   ということで、今回はCapistranoを使って、以下の方針でやることにしました。    1. アプリケーション(Webアプリ/検索用アプリ/バッチアプリ)によってCapfileを分ける  2. それぞれのアプリの中で使う変数をコマンドラインから渡す   非常に簡単で、cap --help すれば出てくるのですが、 上記1.は↓の-fでファイルを指定します。  -f, --file FILE  A recipe file to load. May be given more than once. 上記2.は↓の-Sで変数を指定します。  -S, --set-before NAME=VALUE  Set a variable before the recipes are loaded.   実際には↓のようなコマンドラインになります。  cap -f web_app_deploy.rb -S cluster_no=1 deploy   レシピファイルの中身は↓ザックリこんな感じです。 他にも監視止めたりとかあーだこーだあるのですが、その辺は割愛。 (まだ書いてないだけっていう話もあるw) 出来るだけ細かく分割しておけば、他でも使いまわせそうな予感がします。 ======= task :backup do  run "cpでバックアップ。パスに#{cluster_no}を使います。" end   task :stop do  run "ミドルウエア停止用のスクリプト" end   task :remove do  run "rmでゴミ掃除して" end   task :put do  run "cpで所定の場所にアプリを置きます。#{cluster_no}な名前のファイル" end   task :start do  run "ミドルウエア起動用のスクリプト" end   task :deploy do  backup  stop  remove  put  start end =======   明日もCapistranoをイジる予定なので、面白そうな発見があったら、 また載せていきます。