【发布时间】:2012-06-06 19:48:53
【问题描述】:
我想知道是否有一种方法可以为 Capistrano 的 run 命令指定一种以顺序模式而不是并行方式操作的方式(通常通过环境变量)
如果可能的话,我想避免在run 调用和find_servers_for_task(current_task).each do |hostname| ... end 循环之间切换的条件语句。
有什么建议吗?
【问题讨论】:
标签: ssh capistrano
我想知道是否有一种方法可以为 Capistrano 的 run 命令指定一种以顺序模式而不是并行方式操作的方式(通常通过环境变量)
如果可能的话,我想避免在run 调用和find_servers_for_task(current_task).each do |hostname| ... end 循环之间切换的条件语句。
有什么建议吗?
【问题讨论】:
标签: ssh capistrano
好的,我终于找到了正确的语法。您可以通过:hosts 说明符限制run 命令的范围(感谢Andriy Yanko)。示例:
before "mytask", 'set_roles'
########### mytask #####################
desc "Example of a sequential run of capistrano"
task :mytask, :roles => :dynhosts do
find_servers_for_task(current_task).each do |hostname|
info "=> run mytask on #{hostname}"
run "whoami", :hosts => [ "#{hostname}" ]
end
end
【讨论】: