2012-06-06 40 views
0

我想知道是否有一种方法可以指定到Capistrano的命令run以顺序模式而不是并行模式运行(通常通过环境变量) 如果可能,我想避免在run呼叫和find_servers_for_task(current_task).each do |hostname| ... end循环之间切换的条件语句。Capistrano在顺序模式下运行

有什么建议吗?

回答

1

好的,我终于找到了正确的语法。您可以通过: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