编写python脚本以打开另一台AWS EC2机器的问题

2024-09-29 07:23:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在我的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它。你知道吗


Tags: toruncom机器netmodelconnectsocket
1条回答
网友
1楼 · 发布于 2024-09-29 07:23:17

您是否正在尝试在启动新实例后立即连接到它?新实例需要几分钟才能启动并准备好进行网络连接。您可以使用Python代码来启动实例循环并轮询实例的状态,使其成为running。你知道吗

相关问题 更多 >