IT井戸端会議

IT井戸端会議

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

capistranoをほんのちょっと動かしてみる④(namespace)

(3)ではひとつのタスクに複数の処理を記載した。 今回はnamespaceを使って処理を分割する。 namespaceはタスクが増えたときに固めて定義できる空間名みたい。

変更するファイルは下記。 ./config/develop/manage.rb

load './config/servers.rb'

namespace :exec do
        dir = "/root/test"

        desc "test"
        task :mkdir do

                on roles( :client ) do
                        execute "mkdir -p #{dir}"
                end
        end

        task :ls do
                on roles( :client ) do
                        execute "ls -ld #{dir}"
                end
        end
end

mkdirのタスクを実行してみる。(cap 環境 空間名:タスク名)

$ cap manage exec:mkdir
INFO [70b07f74] Running /usr/bin/env mkdir -p /root/test on capistrano
DEBUG [70b07f74] Command: mkdir -p /root/test
INFO [3cde3965] Running /usr/bin/env mkdir -p /root/test on openvz
DEBUG [3cde3965] Command: mkdir -p /root/test
INFO [e8e2ccd0] Running /usr/bin/env mkdir -p /root/test on chef
DEBUG [e8e2ccd0] Command: mkdir -p /root/test
INFO [3cde3965] Finished in 0.150 seconds with exit status 0 (successful).
INFO [e8e2ccd0] Finished in 0.335 seconds with exit status 0 (successful).
INFO [70b07f74] Finished in 0.386 seconds with exit status 0 (successful).

lsのタスクを実行してみる。(cap 環境 空間名:タスク名)

$ cap manage exec:ls
INFO [36d6b1ec] Running /usr/bin/env ls -ld /root/test on capistrano
INFO [d3719a31] Running /usr/bin/env ls -ld /root/test on openvz
DEBUG [d3719a31] Command: ls -ld /root/test
INFO [72a2e639] Running /usr/bin/env ls -ld /root/test on chef
DEBUG [72a2e639] Command: ls -ld /root/test
DEBUG [36d6b1ec] Command: ls -ld /root/test
DEBUG [d3719a31]        drwxr-xr-x 2 root root 4096 Jul  7 02:15 /root/test
INFO [d3719a31] Finished in 0.160 seconds with exit status 0 (successful).
DEBUG [36d6b1ec]        drwxr-xr-x. 2 root root 4096 Jul  7 02:39 /root/test
INFO [36d6b1ec] Finished in 0.384 seconds with exit status 0 (successful).
DEBUG [72a2e639]        drwxr-xr-x. 2 root root 4096 Jul  7 01:36 /root/test
INFO [72a2e639] Finished in 0.390 seconds with exit status 0 (successful).