Capistranoを使ってみる

  • 投稿日:
  • by

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"
end

task :stop, :roles => :web do
sudo "/usr/local/apache2/bin/apachectl stop"
end

task :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も使えるので試してみる。