如何使用capistrano对多个服务器运行自定义任务?

时间:2011-01-26 19:54:32

标签: ruby-on-rails ruby capistrano

我正在玩一个集群来运行一些负载测试。如何在所有这些命令上运行命令?这很好用:

role :lt1, "root@184.106.65.194"
role :lt2, "root@184.106.70.52"
role :lt3, "root@184.106.69.138"
role :lt4, "root@184.106.70.42"
role :lt5, "root@184.106.70.90" 
role :lt6, "root@184.106.98.158"
role :lt7, "root@184.106.70.89" 
role :lt8, "root@184.106.70.58" 
role :lt9, "root@184.106.64.187"
role :lt10, "root@184.106.97.57"

task :date, :roles => [:lt1] do
  run "date"
end

但是,当我尝试将:roles更改为[:lt1, :lt2]时,它就会永远挂起。

我也尝试过几乎与具有命名地址(example.something.com)的服务器完全相同的东西,并且它工作正常。

这样做的正确方法是什么,我怎样才能避免它挂起?

当我只做一个时:

  * executing `date'
  * executing "date"
    servers: ["184.106.65.194"]
    [root@184.106.65.194] executing command
 ** [out :: root@184.106.65.194] Wed Jan 26 19:56:16 UTC 2011
    command finished

当我做两个

* executing `date'
* executing "date"
  servers: ["184.106.65.194", "184.106.70.52"]

1 个答案:

答案 0 :(得分:0)

更新到capistrano v2.5.19似乎修复了它。