Capistrano でサーバをセットアップする

例えば新しく作成したサーバに database.yml とか設置しておきたい場合には自分でコピーする必要があったんですが,capistrano 使えば,deploy:setup のときに自動的に配置してくれるようにできます.

set :initial_config_files, %w(database.yml thin.yml environment.rb environments/production.rb)

after "deploy:setup", :role => [:app] do
  try_sudo "chmod -R g+w #{deploy_to}"
  try_sudo "chgrp -R wheel #{deploy_to}"
  try_sudo "mkdir -p #{shared_path/config/environments"
  initial_config_files.each do |file|
    upload("config/shared/config/#{file}", "#{shared_path}/config/#{file}"
  end
end

さらにデプロイ時にその設定ファイルをコピーしたい時には下記のように.

set :config_files, %w(database.yml environment.rb environments/production.rb)

after "deploy:update_code", :role => [:app] do
  config_files.each do |file|
    try_sudo "cp #{shared_path/config/#{file} #{release_path}/config/#{file}"
  end
end
 
comments powered by Disqus