アプリケーション名
Capistrano(きゃぴすとらーの)
このアプリケーションでできること
- deploy用アプリケーション。
- SSHでアクセス可能で、同じユーザ名/パスワードで、同じディレクトリ構成のものであれば、複数台に配置可能(配置先サーバ名を設定に追加するだけ)
- subversionからのエクスポートを手動やwebアプリからキックするより、セキュア&合理的
- 配置先でマイグレーション可能。
- 配置先でfcgiやmongrelなどの再起動可能
- 配置先でのロールバック(一つ前の配置状態に戻す)可能
- 配置先は過去の配置状態を時系列で保持している(ディレクトリ名をタイムスタンプとして保持)
対象バージョン
1.2系
インストール方法
gem install capistrano
ちょー簡単な使い方
gem install -y capistrano
でインストール。
MaxOSX 10.5だと最初からインストール済みだね。
Railsのホームディレクトリ(rail hogeで作ったディレクトリ)で
capify .
とやると
./config/deploy.rb
が作られるのでこの中身の
set :application, "set your application name here" ←アプリケーション名。適当につける
set :repository, "set your repository location here" ←subversionのリポジトリ位置
role :app, "your app-server here" ←Railsのインスタンスを立ち上げるサーバのIPまたはドメイン名
role :web, "your web-server here" ←静的ファイルの応答を行うサーバのIPまたはドメイン名
role :db, "your db-server here", :primary => true ←DBのインスタンスを立ち上げるサーバのIPまたはドメイン名
を適当に書き換えた後、必要に応じて
set :use_sudo, false ←接続先ではsudoする必要があるか
set :user, "Your user name" ←SSHでログインするときのユーザ名(各サーバ同じ)
set :scm_user, "Your SCM user name" ←subversionなどのアクセス用ユーザ名(でもうまく動かない)
set :scm_password, "Your SCM Password" ←subversionなどのアクセス用パスワード(でもうまく動かない)
を追加。(詳しい意味は下記H.F.Fさんページ参照。ちなみにscm_userとpasswordは自分の環境ではうまく動かなかった)
更新
subversionなどで、checkoutなどにユーザ名とパスワードが必要だった場合、上記scm_userとscm_passwordを使ってみたけど、コケてしょぼーんだったのが昨日までの話。よくよく考えてみると、
set :repository, "--username your_user_name --password your_password http://example.com:/path/to/your/repository"
でいいじゃんって事になった。確かにこれで動くしね。
これで設定は終わったはずなので、
cap deploy:setup
で配置先に初期ディレクトリなどを用意して、1回目の配置は
cap deploy:cold
2回目以降は
cap deploy
で配置できるはず。マイグレーションなどもできちゃう。
途中でsshでの接続のためのユーザパスワードを聞かれるので答えるように。(この辺はsshの設定による)
配置先でrailsインスタンスを再起動したいならば
./script/spin
というファイルを作って、
/path/to/current/script/process/spawner -p 11000 -i 3
とだけ書いて保存し、subversionのプロパティで実行権限を付けておくと、起動してくれるようになる。
script/process/*も実行権限いるね。
※注
Passenger使うならspinスクリプトはいらない。
たぶん実際には、SSH絡みとか./config/*の設定とか、gemとか各種バージョンによって、まずすんなり動かないと思うが、がんがってくれ。
一度動けばうはうはだ。
公式ページ
※Getting Started→Railsあたりを読もう
日本語解説ページ
※現時点で一番まとまっている
※全体的な話
※よくまとまっています
外国語解説ページ
のうはう
- アップロードしたファイルとか、バージョンが変わっても保持したいデータは、デプロイ先のcurrent/public/system以下に配置すれば、share/systemにシンボリックリンクが張られるから保持できるようになる。
コメント
トラックバック
&link_trackback(text=トラックバック表示)
最終更新:2008年06月09日 00:00