2012-06-06 39 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