fc2ブログ

Capistrano を使って複数サーバーのコントロール


Capistrano を使うことで、複数のサーバーで任意のコマンドを同時に
実行できるらしいので、さっそく実験

さすがに複数マシンを用意するのは現実的ではないので、
VMware Player でクライアントとサーバーのマシンを作成

使っているマシンは ubuntu にしてみました

ただし、注意点として
クライアント、サーバーともに
共通のユーザをつくってパスワードも同じじゃないとダメらしいです

ちなみに、操作性をあげるため、VMware Tools をインストール
しています

Virtual Machine > Install VMware Tools
の後に

cd /tmp
tar zxvf /media/VMware\ Tools/VMwareTools-8.8.1-528969.tar.gz
cd vmware-tools-distrib/
sudo ./vmware-install.pl
の後に再起動すれば反映されます

まずはクライアント側で
sudo apt-get install ruby1.8
sudo apt-get install rubygems1.8
で ruby と gems をインストール

sudo gem install capistrano
で capistrano をインストールします

次に
echo "export PATH=/var/lib/gems/1.8/bin:\$PATH" >> ~/.bashrc
でライブラリ参照パスを設定

source .bashrc
で設定を反映

ssh-keygen -t rsa
で公開鍵ファイルを作成
パスフレーズを聞かれるけど、ひたすらEnter でパスフレーズなしのものを作成

ここまでがクライアントの設定

今度はサーバー設定
sudo apt-get install ssh
でssh サーバーをインストール

ついでに ifconfig でIPアドレスを確認しておきます
192.168.10.114

次に、クライアントで scp を使って鍵のコピー
scp .ssh/id_rsa.pub snowpool@192.168.10.114:~
でコピー
文法としては、
scp ファイルの置き場のパス ユーザ名@IPアドレス:コピー先のパス

となります

またサーバに戻って設定をします
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
で認証済みの鍵として登録

chmod 600 ~/.ssh/authorized_keys
でパーミッション変更

ここまで完了したら、次に
またクライアント ubuntu に戻ります

vimcapfile でファイルを新規作成

日経 Linux 2011-12 についているDVDにスクリプト内容が記述されているので
これを使いました

ただし、注意点として ubuntu 11.10 の場合エラーになります

そのまま
cap addJava_home
を実行しても
Invalid gemspec in [/var/lib/gems/1.8/specifications/capistrano-2.9.0.gemspec]: invalid date format in specification: "2011-09-24 00:00:00.000000000Z"
/usr/lib/ruby/vendor_ruby/1.8/rubygems.rb:926:in `report_activate_error': Could not find RubyGem capistrano (>= 0) (Gem::LoadError)
from /usr/lib/ruby/vendor_ruby/1.8/rubygems.rb:244:in `activate_dep'
from /usr/lib/ruby/vendor_ruby/1.8/rubygems.rb:236:in `activate'
from /usr/lib/ruby/vendor_ruby/1.8/rubygems.rb:1307:in `gem'
from /usr/local/bin/cap:18

というようにエラーになります

原因は
[ruby][tips]gemのインストール時に invalid date format in specification でエラー

に載っているように
日付のフォーマットの記述がおかしくなっているためでした


sudo vim /var/lib/gems/1.8/specifications/capistrano-2.9.0.gemspec
でファイルを開き

s.date = %q{2011-09-24 00:00:00.000000000Z}


s.date = %q{2011-09-24}
へ修正

これで、無事に実行することができます

まだ、構文などの詳しいところは勉強中です


スポンサーサイト



テーマ : Linux
ジャンル : コンピュータ

コメント

非公開コメント

最新記事
検索フォーム
GREEハコニワ攻略サイト
リンク
カテゴリ
月別アーカイブ
フリーエリア
最新記事
FXプライムレート
最新コメント
最新トラックバック