Net::SSH 连接从内部 resque 作业失败
我有一个设置创建 EC2 实例的应用程序 - 我有一个 resque 任务,一旦服务器启动并运行,它将配置服务器(通过 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 应用程序运行此任务,它会连接很好。有什么想法吗?
I have an app that sets creates EC2 instances - I have a resque task that will configure the server (via ssh) once it's up and running:
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
I get an error:
*** (Job{serverbuild} | ServerBuilder | [22]) failed: #<Errno::ECONNREFUSED: Connection refused - connect(2)>
If I run this from irb, or from my rails app, it's connects just fine. Any thoughts?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是一个计时问题 - EC2 实例在接受 ssh 请求之前已“启动”。我在 20 秒内重试(最多 5 次)再次重试该错误。现在工作。
It's a timing issue - EC2 instances are "up" before the will accept ssh requests. I rescued the error retried again in 20 seconds (up to 5 times). working now.