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をイジる予定なので、面白そうな発見があったら、
また載せていきます。

コメント

タイトルとURLをコピーしました