koukiblog

たぶんweb系の話題

capistranoのメモ

capistranoをなんとなく使っていたのだけど、
今日はじめて複数環境にデプロイできるようにしたので、メモ。

複数環境にデプロイ

既にスクリプトが存在している前提ですが、

# 共通の設定は外にかけばよい
set :deploy_to, "/var/www/html/#{application}"

task :staging do
  set :user, "XXXXXXX"
  role :web, "XXXXXXX"
  role :app, "XXXXXX"
  # などステージング環境用の設定
end

task :production do
  set :user, "XXXXXXX"
  role :web, "XXXXXXX"
  role :app, "XXXXXXX"
  # などプロダクション環境用の設定
end

てすると、

 cap staging deploy

でステージング

 cap production deploy

でプロダクション環境用の設定を使ってデプロイされます。

runコマンド内でsudo

普通に"sudo XXXX"てやると対話的に聞かれなくて、詰まってたのですが、こうすればよかったらしい。

    run "#{sudo :as => 'root'} chown -R apache.apache #{current_release}"