第3回 Windows で Capistrano
前回「SSH 公開鍵の設置」では、Linux や Mac OS X で、Capistrano を使うための準備作業について書いた。
今回は、その Windows 編だ。
Capistrano は、Ruby の Net::SSH モジュールを使ってリモートサーバにログインする。したがって、基本的には、ssh クライアントプログラムは必要ない。
あなたのパソコンの適当なフォルダに、次のような内容のファイル Capfile を作る。
task :stamp, :hosts => "alpha.oiax.jp" do run "touch /home/kuroda/touched" end
そして、stamp タスクを実行する。
% cap stamp
* executing `stamp'
* executing "touch /home/kuroda/touched"
Password:
servers: ["alpha.oiax.jp"]
[alpha.oiax.jp] executing command
command finished
途中でパスワードを尋ねられる点を除けば、前回の記事と同じである。
Windows で、公開鍵による SSH ログインを実現するには、PuTTY というフリーソフトウェアを利用する。
PuTTY Download Page から putty-x.xx-installer.exe をダウンロードして、インストールする。
まず、puttygen プログラムを起動して、SSH 鍵を作り、秘密鍵を保存し、公開鍵をリモートサーバの authorized_keys ファイルに追加する。詳しくは、PuTTYgen の利用 を参照のこと。ただし、/home/app/.ssh/authorized_keys ファイルにも公開鍵を追加することを忘れないように。
次に pageant プログラムを起動する。このプログラムは常駐型であり、起動するとタスクトレイに帽子をかぶったパソコンのアイコンが現れる。このアイコンをダブルクリックすると、「Pageant Key List」というウィンドウが開くので、[Add Key] ボタンをクリックして、先ほど保存した秘密鍵のファイルを選んで、鍵を pageant に登録する。
この手順を Windows 起動後に一度だけやっておくと、Capistrano 実行時にパスワードを入力しなくても済むようになる。
% cap stamp
* executing `stamp'
* executing "touch /home/kuroda/touched"
servers: ["alpha.oiax.jp"]
[alpha.oiax.jp] executing command
command finished
この文章を執筆した当時の Capistrano 2.3.0 では問題が出なかったが、2010年3月30日現在の最新版 Capistrano 2.5.18 は pageant と相性が悪く、can't convert Net::SSH::Authentication::Pageant::Socket into IO (TypeError) というエラーメッセージを表示して止まってしまう。このバグは少なくとも2008年12月には認識されているが、対応される気配はない。Windows ユーザーは pageant を使わないか、古い Capistrano 2.3.0 を使用するか、どちらかを選ぶしか対処方法はなさそうだ。
[改訂] 2008/05/17 ユーザー app でリモートホストにログインする方式に合わせて記述を修正。
[改訂] 2010/03/30 pageant との相性に関する注を追加。
(2008/03/26)
記事に関するご質問は、 hermes@oiax.jp までメールでお送りください。
ウェブサイト構築の発注先を検討されているお客様は、ご相談フォームをご利用ください。
- はじめに
- 第1回 インストール (2008/03/24)
- 第2回 SSH 公開鍵の設置 (2008/03/25)
- 第3回 Windows で Capistrano (2008/03/26)
- 第4回 capify (2008/03/27)
- 第5回 ターゲットホストの準備 (2008/03/28)
- 第6回 deploy:update (2008/03/29)
- 第7回 Rails アプリケーションの起動・停止・再起動 (2008/05/17)
- 第8回 deploy:rollback と deploy:cleanup (2008/05/18)
- 第9回 メンテナンスページへの切り替え (2008/06/03)

