Contents
  1. install
  2. How to use
      1. [update_code] transaction: rollback
    1. つまづいた点: 公開鍵が必要
    2. つまづいた点: rake統合はobsolete
    3. つまづいた点: 最初のdirectoryの指定
  3. links
  4. テスト関係
  5. old
  6. link

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

これでもいい。

テスト関係

Last modified: 2007-04-20