2016-03-26 2 views
-1

私は、ある時間に別のEC2マシンを起動する私のジェンキンEC2でプロセスを設定しようとしています。別のAWS EC2マシンを起動するPythonスクリプトを発行する

私は他のEC2のマシンをオンにするために、次のように簡単なPythonスクリプトを書くことによって開始しました:

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マシンがオンになっているときに私がジェンキンマシンからpingできることを確認しました。

答えて

2

新しいインスタンスを起動した直後に接続しようとしていますか?新しいインスタンスが起動し、ネットワーク接続の準備が整うまで数分かかります。インスタンスループを起動し、インスタンスの状態をポーリングしてrunningになるPythonコードを持つことができます。

+0

インスタンスを起動した後、私はそれを書いた他のスクリプトを統合したいと思います。たとえば、gitのコードの最新バージョンをバッチRスクリプトなどに置き換えます。 –

+0

あなたはそれを実行できるはずですが、インスタンスに接続してから接続しようとするまでこれを行うには、新しいインスタンスの状態をポーリングする必要があります。 – garnaat

関連する問題