capistranoのインストール
# gem install capistrano --include-dependencies
RailsにCapistranoを組み込むためには、capifyコマンドの第一引数にRailsプロジェクトのルートディレクトリを指定して実行してください。Capfileとconfig/deploy.rbの2つのファイルが作成されます。
プロジェクトの初期化
$ mkdir -p /var/www/rails/sample/config
$ capify /var/www/rails/sample
script/spin
- 下記の内容でscript/spinファイルを作成する
/home/www/Rails/sample/current/script/process/spawner -p 8000 -i 3 --prefix=/sample
配布先サーバの初期化
配布先サーバにCapistranoで必要なディレクトリを作成します。
$ cap deploy:setup
初回リリース
$ cap deploy:cold
config/deploy.rbの編集
set :application, "sample"
set :repository, "http://mydomain/svn/sample/trunk/"
# If you aren't deploying to /u/apps/#{application} on the target
# servers (which is the default), you can specify the actual location
# via the :deploy_to variable:
set :deploy_to, "/var/www/#{application}"
# If you aren't using Subversion to manage your source code, specify
# your SCM below:
# set :scm, :subversion
set :use_sudo, false
role :app, "localhost"
role :web, "localhost"
role :db, "localhost", :primary => true
set :document_root, "/var/www/htdocs"
namespace :deploy do
namespace :web do
task :disable, :roles => :web, :except => { :no_release => true } do
require 'erb'
on_rollback { run "rm #{document_root}/#{application}_maintenance.html" }
reason = ENV['REASON']
deadline = ENV['UNTIL']
template = File.read("config/maintenance.rhtml")
result = ERB.new(template).result(binding)
put result, "#{document_root}/#{application}_maintenance.html", :mode => 0644
end
task :enable, :roles => :web, :except => { :no_release => true } do
run "rm #{document_root}/#{application}_maintenance.html"
end
end
end
最終更新:2008年02月11日 13:26