Net :: SSH Connection не удается из внутренней работы
-
04-10-2019 - |
Вопрос
У меня есть приложение, которое устанавливает, создает экземпляры EC2 - у меня есть задача RASQUE, которая настроит сервер (через 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 - «UP», прежде чем примет запросы 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