我试图在我的jenkins EC2上设置一个进程,在给定的时间打开另一台EC2机器。你知道吗
我首先编写了一个简单的python脚本,如下所示,以打开另一台EC2机器:
import boto.ec2
conn = boto.ec2.connect_to_region("us-east-1")
conn.run_instances(
'ami-...',
key_name='my_key_name',
instance_type='my_instance_type',
security_groups=['my_security_group']
)
但这个错误是:
[SSH] Exception:java.net.NoRouteToHostException: No route to host
com.jcraft.jsch.JSchException: java.net.NoRouteToHostException: No route to host
at com.jcraft.jsch.Util.createSocket(Util.java:341)
at com.jcraft.jsch.Session.connect(Session.java:182)
at com.jcraft.jsch.Session.connect(Session.java:150)
at org.jvnet.hudson.plugins.SSHSite.createSession(SSHSite.java:141)
at org.jvnet.hudson.plugins.SSHSite.executeCommand(SSHSite.java:151)
at org.jvnet.hudson.plugins.SSHBuildWrapper.executePreBuildScript(SSHBuildWrapper.java:75)
at org.jvnet.hudson.plugins.SSHBuildWrapper.setUp(SSHBuildWrapper.java:59)
at hudson.model.Build$BuildExecution.doRun(Build.java:156)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:537)
at hudson.model.Run.execute(Run.java:1741)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:408)
Caused by: java.net.NoRouteToHostException: No route to host
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at java.net.Socket.<init>(Socket.java:425)
at java.net.Socket.<init>(Socket.java:208)
at com.jcraft.jsch.Util.createSocket(Util.java:335)
... 12 more
如果我读到的错误是正确的,它是说,它不能连接到其他EC2机器,很可能是因为它被关闭:)
这就是我陷入困境的地方,我希望有人能帮助缩小问题的范围——我是否使用了错误的方法来打开另一台EC2机器?/有什么建议可以缩小这个问题吗?你知道吗
我已经检查了两台EC2机器的安全组,并且检查了当另一台EC2机器打开时,我能够从jenkins机器ping它。你知道吗
您是否正在尝试在启动新实例后立即连接到它?新实例需要几分钟才能启动并准备好进行网络连接。您可以使用Python代码来启动实例循环并轮询实例的状态,使其成为
running
。你知道吗相关问题 更多 >
编程相关推荐