Capistrano部署到同一个Cloud Service上的许多节点
我在Azure上有一个Cloud Service,包含许多实例,每个实例都具有相同的地址,例如。 mycloudservice.cloudapp.net
但是在随机端口上公开ssh服务,以便可以从外部访问任何实例。
问题是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}
是否有任何工作来定义具有相同名称的多个服务器?
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