2017-04-17 34 views
0

我创建了一个deploy.cap,它取决于servers.cap中运行一个或另一个任务的服务器的数量,但我无法找到/想象一下数组的方式。Capistrano:如何计算角色中服务器的数量

这是servers.cap我:

server "server1.domain.net", :all, :app 
server "server2.domain.net", :all, :app 

你能给我说说怎么做任何很好的例子?我不是卡皮斯特拉诺专家,所以请越容易越好。

非常感谢, 阿尔弗雷多

回答

0

可以使用roles DSL获得匹配给定角色的服务器阵列。然后您可以计算该数组中的项目数量。

例如:

# Capistrano 3.x 
puts roles(:all).size 

# Capistrano 2.x 
puts roles[:all].servers.size 
+0

试过了,我得到的错误: /usr/lib64/ruby/gems/1.8/gems/capistrano-2.15.9/lib/capistrano/configuration/namespaces .rb:191:在'角色'中:错误的参数数量(1代表0)(ArgumentError) 你知道我忘了什么吗? –

+0

明白了,它是: 把角色[:所有] .servers.size –

+0

对不起,我没有意识到它是一个老版本的Capistrano。恭喜你弄明白了! –