Contents
  1. Use Capistrano from Linux
    1. install capistrano
    2. svn checkout
    3. setup ssh
    4. cap deploy:stop
    5. cap deploy:update
    6. cap deploy:migrate
    7. cap deploy:start
    8. 再トライ
    9. 全体的に
  2. Windows mswin32 Rubyでトライ
    1. update rubygems
    2. install capistrano
    3. check ssh
    4. svn checkout
    5. cap deploy:stop
    6. cap deploy:update
    7. cap deploy:migrate
    8. cap deploy:start
    9. 全体的に
  3. use Cygwin on Windows
    1. update rubygems
    2. install capistrano
    3. deploy:stop
    4. cap deploy:update
    5. cap deploy:migrate
    6. cap deploy:start
    7. 全体的に

Using Capistrano

Use Capistrano from Linux

install capistrano

ssh example.com
sudo -s
# gem install capistrano
% cap --version
Capistrano v2.5.5

svn checkout

cd
svn co file:///repos/target/trunk target

setup ssh

ssh-keygen -t dsa
sudo -s
  • /home/admin/.ssh/authorized_keysに/home/eto/.ssh/id_dsa.pubの内容を追記した.
ssh -l admin example.com
  • 先程のパスワードで入れることを確認
keychain id_dsa
source ~/.keychain/example-csh
ssh -l admin example.com
  • 今度はパスワード無しで入れるようになった.

cap deploy:stop

cd ~/target
svn st
svn commit
wget -S http://localhost:3000/ →動いてることを確認.
cap deploy:stop
wget -S http://localhost:3000/ →あれ,まだ動いてるな….
*** [err :: example.com] Couldn't find any pid file in '/home/admin/target/releases/20090506041235/tmp/pids' matching 'dispatch.[0-9]*.pid'
*** [err :: example.com] (also looked for processes matching "/home/admin/target/releases/20090506041235/public/dispatch.fcgi")
  • 前回の起動の仕方がCapistranoを使わなかったからかな.
  • adminで入って,ps uxしてkillした.
wget -S http://localhost:3000/ →停止したことを確認した.

cap deploy:update

cap deploy:update
Permission denied (publickey).
svn: Connection closed unexpectedly
  • 駄目だ.エラーになる….とりあえずupdateはスキップする.

cap deploy:migrate

% cap deploy:migrate →これはうまくいく.

cap deploy:start

% cap deploy:start
wget -S http://localhost:3000/ →よし,動いた.

再トライ

cap deploy:stop
wget -S http://localhost:3000/ →止まった.
cap deploy:start
wget -S http://localhost:3000/ →動いた.
  • updateしないのならばうまくいくことがわかった.

全体的に

  • update以外はうまくいった.updateがうまくいかない理由はよくわからない.

Windows mswin32 Rubyでトライ

update rubygems

c:/ruby/bin/gem --version
1.2.0
c:/ruby/bin/gem update --system
c:/ruby/bin/gem --version
1.3.3

install capistrano

c:/ruby/bin/gem install capistrano
c:/ruby/bin/gem install echoe ←なぜかこれが必要だった.
c:/ruby/bin/cap --version
Capistrano v2.5.5

check ssh

ssh example.com
  • keychainを使っているので,パスワード無しで入れることを確認.

svn checkout

cd c:/dev
svn co svn+ssh://example.com/repos/target/trunk target

cap deploy:stop

  • check ssh for admin
ssh -l admin example.com
  • こちらもパスワード無しで入れることを確認した.
wget -S http://www.example.com:3000/ →動いてることを確認.
cd c:/dev/target
c:/ruby/bin/cap deploy:stop
Enter passphrase for C:/cygwin/home/eto/.ssh/id_dsa: ←なぜかパスワードを聞いてくる.
wget -S http://www.example.com:3000/ →停止した

cap deploy:update

c:/ruby/bin/cap deploy:update →お,うまくいった.

cap deploy:migrate

c:/ruby/bin/cap deploy:migrate

cap deploy:start

c:/ruby/bin/cap deploy:start
wget -S http://www.example.com:3000/ →動いた.

全体的に

  • パスワードを聞いてくることを除けばうまくいくことがわかった.

use Cygwin on Windows

update rubygems

/usr/bin/gem --version
1.0.1
/usr/bin/update_rubygems
Error: Cannot find RubyGems Update Path!
/usr/bin/gem update --system
/usr/bin/gem --version
1.3.3

install capistrano

/usr/bin/gem install capistrano
/usr/bin/cap --version
Capistrano v2.5.5

deploy:stop

wget -S http://www.example.com:3000/ →動いてることを確認.
cd c:/dev/target
/usr/bin/cap deploy:stop
wget -S http://www.example.com:3000/ →止まった.

cap deploy:update

/usr/bin/cap deploy:update →うまくいった.

cap deploy:migrate

/usr/bin/cap deploy:migrate

cap deploy:start

/usr/bin/cap deploy:start
wget -S http://www.modulobe.com:3000/ →動いた.

全体的に

  • パスワードも聞いてこないし,うまく動くことがわかった.
Last modified: 2009-05-16