在我使用 Fog 引导它之后,我无法立即连接到 EC2 实例。引导后,我等待实例准备好,然后再等待 5 秒。但是我仍然无法通过 ssh 连接。稍后连接可用,但在机器“准备好”后需要一点时间。
instance.wait_for { ready? }
instance.wait_for { !public_ip_address.nil?}
sleep(5)
关于等待机器准备好接受 ssh 连接的方法有什么建议吗?
在我使用 Fog 引导它之后,我无法立即连接到 EC2 实例。引导后,我等待实例准备好,然后再等待 5 秒。但是我仍然无法通过 ssh 连接。稍后连接可用,但在机器“准备好”后需要一点时间。
instance.wait_for { ready? }
instance.wait_for { !public_ip_address.nil?}
sleep(5)
关于等待机器准备好接受 ssh 连接的方法有什么建议吗?
假设您使用的是 EC2,请确保服务器所在的安全组允许端口 22 上的 SSH。如果您不在 EC2 上,则可能是类似的防火墙问题。
编辑:这是我以前使用过的一些代码,从来没有遇到过任何问题,但那是与非 ec2 云提供商有关的。
def wait_for resource, msgOnStart, msgOnReady='Done'
print msgOnStart
resource.wait_for do
print '.'
if resource.ready?
print "#{msgOnReady}\n"
true
end
end
end
@server = compute.servers.create(#blahblahblah)
wait_for @server, 'Provisioning server'