Capistranoで遊んでみた。
多くの方が絶賛しているruby製のアプリケーションなどを管理する為のツールですが、私はrubyの知識はないものの簡単な操作ができるまでCentOS上で遊んでみました。 今回の例では、apache2がインストールされた2台のサーバを1台の管理サーバから起動/停止をする簡単な例を説明します。
○以下説明の為のサーバ説明
contorol1 : 管理サーバ
web1 : apache2がインストールされたサーバ1
web2 : apache2がインストールされたサーバ2
○専用の管理アカウントを作成
※例) user : cap / password : capcap
※アプリケーションの実行権限にもよりますが、必要に応じsudo権限を付与させる。
○まずはインストール(管理側の contorol1 サーバのみ)
# wget http://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.5-p2.tar.gz
# cd ruby-1.8.5-p2
# ./configure
# make
# make install# wget http://rubyforge.org/frs/download.php/17189/rubygems-0.9.2.zip
# unzip rubygems-0.9.2.zip
# cd rubygems-0.9.2
# ruby setup.rb# gem install capistrano --include-dependencies
# gem install termios
○管理設定ファイルを作る
ファイル名:apache.rb
ファイル ---- こんな感じで!
set :application, "apache2"
set :user, "cap"role :web, "web1","web2"
task :start, :roles => :web do
sudo "/usr/local/apache2/bin/apachectl start"
endtask :stop, :roles => :web do
sudo "/usr/local/apache2/bin/apachectl stop"
endtask :restart, :roles => :web do
sudo "/usr/local/apache2/bin/apachectl restart"
end
○実際にCapistranoで起動してみる。
# cap -f apache.rb start
* executing task start
* executing "sudo /usr/local/apache2/bin/apachectl start"
servers: ["web1", "web2"]
Password: ←パスワードを入力する。
[web1] executing command
[web2] executing command
command finished※web1 と web2のサーバで一応確認してみる。
# cap -f apache.rb の<オプション>で stop や restartも使えるので試してみる。