Contents
Capistrano
CapistranoはDeployツールの一種である。Deployツールとは何かというと、開 発をしていると、手元のファイルを書き換えて、svn comして、本番サーバに sshして、サーバ起動用のユーザにsuして、svn upして、サーバをrestartする ということをよくやる。何度もやる。これら一連の手順を簡単に行えるように するものがDeployツールである。
Capistranoは、Railsと共に使うべく作られたツールなのでRailsと相性がいい が、それ以外のものとも一緒に使える。
■install
- cygwin
% gem.cmd update -y capistrano Successfully installed capistrano-1.4.1 Successfully installed net-ssh-1.0.10 Successfully installed needle-1.3.0 Successfully installed net-sftp-1.1.0 % cap.cmd -h
- coLinux
# gem update -y capistrano
■How to use
- ↓このへんがわかりやすい。参考にしてやってみよう。
% cd c:/dev
% cap.cmd --apply-to modulobe-rails
exists config
create config/deploy.rb
exists lib/tasks
create lib/tasks/capistrano.rake
% cd modulobe-rails
% svn st
% svn add config/deploy.rb lib/tasks/capistrano.rake- 自分で変更するのはconfig/deploy.rbだけ。
- コメントがたくさんついているが、逆に全体がつかみずらいので、originalをコピーしてから読んでみる。
% mkorg config/deploy.rb
- こんな感じかしらん。
set :application, "modulobe-rails"
set :repository, "svn+ssh://eto.com/repos/#{application}"
role :web, "localhost"
role :app, "localhost"
role :db, "localhost", :primary => true
set :deploy_to, "/cygdrive/c/deploy/#{application}"
- 「/cygdrive/c/deploy/modulobe-rails」というdirectoryは、まだ存在してない
- deployしてみる
% cap.cmd show_tasks % sshadd % cap.cmd setup
- 「/cygdrive/c/deploy/modulobe-rails」が作成された→準備完了
% cap.cmd deploy * executing task deploy * executing task update ** transaction: start * executing task update_code * querying latest revision... servers: ["localhost"] [localhost] executing command
[update_code] transaction: rollback
* [update_code] rolling back * executing "rm -rf /cygdrive/c/deploy/modulobe-rails/releases/20070419165857" servers: ["localhost"] [localhost] executing command command finished
- エラーになって、巻戻されたということか…。
- 未完。
つまづいた点: 公開鍵が必要
C:\cygwin\home\eto/.ssh/id_dsa.pub
- このファイルが必要でした。
% cd ~/.ssh % cp authorized_keys id_dsa.pub
- こうやって作っておいた。authorized_keysが1行だから使える技だな。
つまづいた点: rake統合はobsolete
% rake.cmd remote:setup Capistrano/Rake integration is deprecated. Please invoke the 'cap' command directly: `cap setup'
だってさ。今後はcapを直接使うべし。
つまづいた点: 最初のdirectoryの指定
% cd c:/dev/modulobe-rails % cap.cmd --apply-to modulobe-rails
最初こうやってしまったが、これは間違い。
% cd c:/dev % cap.cmd --apply-to modulobe-rails
これが正解。
% cap.cmd --apply-to c:/dev/modulobe-rails
これでもいい。
■links
- http://manuals.rubyonrails.com/read/book/17 本家マニュアル
- http://tech.feedforce.jp/capistrano.html フィードフォースの勉強会資料
- http://d.hatena.ne.jp/jestersera/20061111/1163229759 CapistranoをRails以外で使う方法
- http://blog.masuidrive.jp/articles/2006/08/03/capistrano_and_mongrel Mongrelを使う場合
- http://blog.codahale.com/2006/06/19/time-for-a-grown-up-server-rails-mongrel-apache-capistrano-and-you/
- http://www.hsbt.org/diary/20070328.html#p02 capistrano で遊ぶ
- http://www.machu.jp/diary/20070218.html#p01 Rails 勉強会 - capistrano
■テスト関係
- http://d.hatena.ne.jp/walf443/20070212/1171296714 Cerberus
- 手軽なCIツールみたいな感じ
■old
■link
- まだSwitchTower使っていないんですか? http://d.hatena.ne.jp/ma2/20051227/p2
- SwitchTower http://kawara.homelinux.net/pukiwiki/pukiwiki.php?SwitchTower
Last modified: 2007-04-20