2017-07-05 13 views
0

を尊重しない:カピストラーノは、それはまだポート22を使用して接続しようとするため、サーバにsshをしようとしたとき、それが失敗したもののカピストラーノは、私は次のように生産を展開していたポート

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 

...

(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 

他の方法でポートを設定できますか?

答えて

1

:portオプションが有効です。それがなければ、それはバグです。バグ報告をhttps://github.com/capistrano/capistrano/issuesで開いてください。

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

'#{ホスト}::回避策として

は、あなたもこのように、<host>:<port>構文を使用して、ホスト名を経由してポートを指定することができます。#{ポート}" '働いていなかった、最もおそらく私はipアドレスの代わりにfqdnを使用していますが、 'ssh_options:{port:2323}'はうまくいきました。私はカピストラノの古いバージョンを使用していて、今、本当に価値がない –

関連する問題