2015-06-02 78 views
0

我在Azure上有一個Cloud Service,包含許多實例,每個實例都具有相同的地址,例如。 mycloudservice.cloudapp.net,但公開在隨機端口上的ssh服務,以便可以從外部訪問任何實例。Capistrano部署到同一Cloud Service上的多個節點

的問題是,Capistrano的不喜歡這樣的命名,更加明確:

使用不同的名稱,一切工作正常

server 'myservice0.cloudapp.net', user: 'azureuser', roles: %w{web} 
server 'myservice1.cloudapp.net', user: 'azureuser', roles: %w{web} 

但是,當我使用相同的名稱與不同端口Capistrano的認爲我只是重新定義了以前的服務器,因此它僅使用最後一個

server 'myservice.cloudapp.net', port: 53458, user: 'azureuser', roles: %w{web} 
server 'myservice.cloudapp.net', port: 62434, user: 'azureuser', roles: %w{web} 

是否有任何變通定義與日多臺服務器結束同名嗎?

回答

1

Capistrano檢查唯一的服務器名稱。您可以在〜/ .ssh/config中使用ssh別名來解決問題。

server 'ssh_aliases1', roles: %w{web} 
server 'ssh_aliases2', roles: %w{web} 

而這增加的〜/ .ssh/config中

Host ssh_aliases1 
    HostName myservice.cloudapp.net 
    User azureuser 
    port 53458 

Host ssh_aliases2 
    HostName myservice.cloudapp.net 
    User azureuser 
    port 62434