net :: SSH接続は、内部レストランジョブから失敗します
-
04-10-2019 - |
質問
EC2インスタンスを作成するアプリがあります - サーバーが稼働していると(SSH経由)サーバーを構成するリックタスクがあります。
Net::SSH.start(server.dns_name, 'root', :keys => ['~/.ssh/testkey.pem'], :paranoid => false, :verbose => :debug) do |ssh|
result = ssh.exec!("ls -l")
puts result
end
エラーが発生します:
*** (Job{serverbuild} | ServerBuilder | [22]) failed: #<Errno::ECONNREFUSED: Connection refused - connect(2)>
これをIRBから、またはRailsアプリから実行すると、問題なく接続されます。何かご意見は?
解決
これはタイミングの問題です-EC2インスタンスは、SSHリクエストを受け入れる前に「アップ」です。 20秒で再び再度再生されたエラーを救出しました(最大5回)。今働いています。
begin
Net::SSH.start(server.dns_name.to_s, 'root', :keys => ['/Users/stevebrewer/.ssh/testkey.pem'], :paranoid => false) do |ssh|
result = ssh.exec!("ls -la")
puts result
end
rescue
if(retries < 5)
Resque.enqueue_at(20.seconds.from_now, ServerBuilder, server_id, retries + 1)
end
end
所属していません StackOverflow