第4回 capify
2008/03/27
今回は、Rails アプリケーションをデプロイメントする準備。
以下、あなたの Rails アプリケーションの名前を ballad とする。
また、本番サーバのホスト名を alpha.oiax.jp とし、デプロイ先のディレクトリを /var/rails/ballad/ とする。
Subversion レポジトリの URL は https://repository.oiax.jp/svn/ballad/trunk。
なお、これらのホスト名、URL はすべて架空のものである。
ballad アプリケーションのルートディレクトリに移動して、コマンド capify .
を入力。
% capify . [add] writing `./Capfile' [add] writing `./config/deploy.rb' [done] capified!
生成されたファイルの一つ Capfile の中身は次の通りだが、このファイルは基本的に書き換えない。
load 'deploy' if respond_to?(:namespace) # cap2 differentiator Dir['vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) } load 'config/deploy'
config ディレクトリに生成される deploy.rb ファイルの初期状態は、次の通り:
set :application, "set your application name here" set :repository, "set your repository location here" # 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 role :app, "your app-server here" role :web, "your web-server here" role :db, "your db-server here", :primary => true
これを、次のように書き換える。
set :application, "ballad" set :repository, "https://repository.oiax.jp/svn/ballad/trunk" set :deploy_to, "/var/rails/#{application}" set :user, "app" set :use_sudo, false role :app, "alpha.oiax.jp" role :web, "alpha.oiax.jp" role :db, "alpha.oiax.jp", :primary => true
set :user, "app"
で、リモートホストに SSH でログインするユーザーを app に設定している。他のユーザー(例えば、rails)を使っている場合は、書き換える。
その次の行の、set :use_sudo, false
は、Rails アプリケーションの起動時等に sudo を使うかどうかを制御する変数。我々の例では、app ユーザーで起動するので、false
にしておく。
[改訂] 2008/05/17 ユーザー app でリモートホストにログインする方式に合わせて記述を修正。