Capistrano を使ってみた
Ruby で作られたデプロイツール Capistrano を使ってみたので使い方をまとめておく。
インストール
gem でインストールする。
依存ライブラリも入るはず。
最初の一歩
こでは2.2.0を使用する。
Rails アプリを作成しているディレクトリに移動して capify コマンドを実行するだけで その Rails アプリは Capistrano 対応になる。
capify コマンドでは以下のファイルが生成される。
- Capfile
- レシピファイル
- config/deploy.rb
- 設定ファイル
あとは config/deploy.rb を編集するだけで良い。
config/deploy.rb の編集
set :hoge のところは特に説明は不要だと思う。しかし、set :repository の設定でちょっとハマったので後述する。 role の方は、各サーバーの名前や IPアドレスを記述する。ドキュメントによると複数のサーバを指定することも可能なようだ。 ウチでは全部同じサーバなのでそういう風に設定した。
これでデプロイ先にディレクトリが作成される。
これで足りないものが無いかチェックしてくれる。
初回のデプロイは上記コマンドを実行する。二回目以降は以下を実行する。
簡単ですね!
ハマりポイント
ウチのサーバの構成。
ご存知のとおり、Subversion は svn, svn+ssh, file, http, https などのプロトコルに対応している。 自分の場合は、 svn+ssh でアクセスするようにしていたので最初はそのように設定した。
その場合、以下のように実行されるようでうまく行かなかった。
- ローカルでリポジトリの情報を取得
- app サーバに ssh で乗り込む[a]
- appサーバから svn+ssh でリポジトリからデータを取得[b]
3番の部分で ssh のコネクションが突然閉じてしまう。ログを確認してもよく分からなかったのであまり調査せずに サーバに乗り込んでから cap コマンドを実行するようにした。
リポジトリの設定だけ file:// を使用するように変更した。
今のところうまく動いているので、もう少し時間のある時にしっかり調べてみようと思う。
Posted in Ruby | コメントはありません | atom
Trackbacks
Use the following link to trackback from your own site:
http://typo.okkez.net/trackbacks?article_id=use-capistrano-1&day=29&month=03&year=2008