我将部署到生产环境,如下所示:
HOSTS = [
'api1.app.io',
'api2.app.io',
'api3.app.io',
'api4.app.io',
'api5.app.io',
'api6.app.io',
'api7.app.io',
'api8.app.io',
'api9.app.io',
'api10.app.io'
].freeze
HOSTS.each do |host|
server host, roles: %i[app web], user: 'deploy', port: 2323
end尽管当capistrano尝试ssh进入服务器时它会失败,因为它仍然尝试使用端口22连接...
(Backtrace restricted to imported tasks)
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing on host api2.app.io: Net::SSH::ConnectionTimeout
Net::SSH::ConnectionTimeout: Net::SSH::ConnectionTimeout
Errno::ETIMEDOUT: Connection timed out - connect(2) for xx.xx.xx.xx:22是否有其他方法来配置端口?
发布于 2017-07-06 00:15:13
:port选项应该可以工作。如果不是这样,那么它就是一个bug。请在https://github.com/capistrano/capistrano/issues上打开错误报告。
作为一种解决方法,您还可以使用<host>:<port>语法通过主机名指定端口,如下所示:
HOSTS.each do |host|
server "#{host}:#{port}", roles: %i[app web], user: 'deploy'
endhttps://stackoverflow.com/questions/44928501
复制相似问题