一つ前のエントリでCapistranoの↓の事を記載しましたが、
======
-S, –set-before NAME=VALUE Set a variable before the recipes are loaded.
======
今日は新たな壁に当たりました。
roleの対象サーバをcapコマンドの引数に渡して制御したいけど、
-Sで指定してもtaskの中まで行かないと使えないんですよね、、
ネットで探しても、タスクごとにroleを振り分けられるんですよ~的なのは
たくさん見つかりましたが、コレっていうのが出てこず。
# Capistranoでは対象のサーバをroleというので指定します。
# 実行するときは↓こんな風に出てくるわけですけど。
# servers: [“hoge1”, “hoge2”, “hoge3”, “hoge4”]
そしたら、roleの設定ってtaskの中でも出来るんですね。
↓こんな感じでいい感じに実行時に-Sで渡した値によって
対象のサーバを切り替えられるようになりました。
======
task :hoge_role do
if “#{hoge}” == “aaa” then
role :hosts, “hoge1″,”hoge2″,”hoge3″,”hoge4”
elsif “#{hoge}” == “bbb” then
role :hosts, “hoge5″,”hoge6″,”hoge7″,”hoge8”
~略~
end
======
Ezra Zygmuntowicz Bruce A. Tate Clinton Begin
オライリージャパン
売り上げランキング: 278746
オライリージャパン
売り上げランキング: 278746
コメント