2017-07-05 6 views
0

ich die Produktion wie folgt bereitstellen:Capistrano nicht respektiert Port

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 

obwohl es fehlschlägt, wenn Capistrano versucht, in die Server ssh, weil es immer noch versucht, eine Verbindung mit Port 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 

Gibt es eine andere Möglichkeit, die Ports zu konfigurieren?

Antwort

1

Die Option :port sollte funktionieren. Wenn nicht, ist das ein Fehler. Bitte öffnen Sie einen Fehlerbericht unter https://github.com/capistrano/capistrano/issues.

Als Abhilfe können Sie den Port über den Hostnamen angeben, auch die <host>:<port> Syntax, wie folgt aus:

HOSTS.each do |host| 
    server "#{host}:#{port}", roles: %i[app web], user: 'deploy' 
end 
+0

die '# {host}: # {port}" 'nicht gearbeitet haben, die meisten wahrscheinlich weil ich fqdn anstelle der IP-Adresse verwende, aber 'ssh_options: {port: 2323}' hat gut funktioniert, tho .. Ich werde kein Problem öffnen, weil ich eine alte Version von capistrano benutze und ich kann nicht richtig upgraden jetzt, so ist es nicht wirklich wert –

Verwandte Themen