IT井戸端会議

IT井戸端会議

インフラ、ネットワーク、アプリケーション開発、IT界隈の話等々を東京都千代田区界隈から発信します。

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コマンドなどが並列実行されているのを確認したら終わり。