2017-04-17 35 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。恭喜你弄明白了! –