私は、ある時間に別の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できることを確認しました。
インスタンスを起動した後、私はそれを書いた他のスクリプトを統合したいと思います。たとえば、gitのコードの最新バージョンをバッチRスクリプトなどに置き換えます。 –
あなたはそれを実行できるはずですが、インスタンスに接続してから接続しようとするまでこれを行うには、新しいインスタンスの状態をポーリングする必要があります。 – garnaat