2007年10月3日水曜日

ruby misc tips

Gem での proxy 超えは http_proxy 環境変数に http://_proxy_host_:_port_ を
設定するのが良いらしい。

rake を初めてビルドツールとして使ってみる。利点は make/ant に比べて
rakefile の記述力が高いということだろうか。慣れると面白そう。
http://www2s.biglobe.ne.jp/~idesaku/sss/tech/rake/

Capistrano も気になって少し調べてみる。こちらはデプロイツールとなっている。
複数のホストにまたがる更新処理などを書きやすいということのようだ。
古い版は Rails に依存していたのでレシピファイルは config/deploy.rb だが
現行の v2.0.0 では Capfile または capfile も受け付ける。

$ gem install capistrano --include-dependencies

ssh が使えて posix shell 相当のものがデフォルト(?)の場所にあるシステム
に対していろいろと実行を指示出来るようである。

ssh が使えてというのは capistrano を実行するシステムの ssh public key が
リモートのシステムの authorized_keys に登録された状態をいう。
手順としては ssh-keygen -t dsa で private/public キーを作り、public キー
をログイン先の .ssh の authorized_keys に追加する。クライアントからは
ssh リモートホスト だけでログインできるようにしておく。一回目は known_hosts
更新があるので登録するかどうか聞かれるので、登録しておく。private キーを
暗号化した場合には ssh でリモートアクセスする際に、クライアントサイドで
private キーを使用するために暗号化に使用したパスワード(パスフレーズ?)を
聞かれる。このケースはよく試していないが capistrano からでもターミナルで
インターラクティブに実行している分には問題なさそう。

Cygwin に OpenSSH を入れれば SSH サーバとして構成できるようで (ssh-host-config
を一度実行する必要がある、また Cygwin 自体 all user 対象でインストールし、かつ
アドミン権限が必要)サービスを起動しておけば ssh で Windows マシンにログイン
できる。結局のところ Cygwin 環境にリモートで入るわけで Linux より少し
不便な環境ぐらいに思ったほうが良いだろう。

Capistrano 自体はまだまだ学習しないといけないが、task にどのホストで実行
させるかという属性がつけられる。また、単一、複数のほすとを role として
定義し、role に対して特定のタスクを実行などということもできる。
http://www.capify.org/

0 件のコメント: