capistranoをほんのちょっと動かしてみる②(サーバ情報外だし)
(1)ではすべての情報を./config/deploy/manage.rbに記載した。 今回は./config/servers.rbにサーバ情報を記載。 ./config/deploy/manage.rb実行時に./config/servers.rbをロードするようにする。 また、capistranoは並列処理が出来るので2サーバを定義するようにする。
変更したのは下記の2ファイルのみ。 ./config/deploy/manage.rb ./config/servers.rb
./config/deploy/manage.rbの中身
# サーバ情報を記載した./config/servers.rbをロードするように変更
load './config/servers.rb'
task :mkdir do
dir = '/root/test'
on roles( :client ) do
execute "mkdir -p #{dir}"
execute "ls -ld #{dir}"
end
end
./config/servers.rbの中身。
SSHKit::Backend::Netssh.configure do |ssh|
ssh.ssh_options = {
:user => 'root',
:password => '****',
}
end
# roleにホスト名がchefとopenvzの複数を指定するように変更してみた。
role :client, %w{chef openvz}
実行してみる。
$ cap manage mkdir
INFO [424865a2] Running /usr/bin/env mkdir -p /root/test on openvz
INFO [cd281711] Running /usr/bin/env mkdir -p /root/test on chef
DEBUG [cd281711] Command: mkdir -p /root/test
DEBUG [424865a2] Command: mkdir -p /root/test
INFO [424865a2] Finished in 0.121 seconds with exit status 0 (successful).
INFO [874e0841] Running /usr/bin/env ls -ld /root/test on openvz
DEBUG [874e0841] Command: ls -ld /root/test
DEBUG [874e0841] drwxr-xr-x 2 root root 4096 Jul 7 02:15 /root/test
INFO [874e0841] Finished in 0.023 seconds with exit status 0 (successful).
INFO [cd281711] Finished in 0.325 seconds with exit status 0 (successful).
INFO [025e36b7] Running /usr/bin/env ls -ld /root/test on chef
DEBUG [025e36b7] Command: ls -ld /root/test
DEBUG [025e36b7] drwxr-xr-x. 2 root root 4096 Jul 7 01:36 /root/test
INFO [025e36b7] Finished in 0.034 seconds with exit status 0 (successful).
mkdirコマンドなどが並列実行されているのを確認したら終わり。