私は最近、主な開発者が立ち上がって終了したばかりのJenkins-driven Javaプロジェクトを継承しました。彼はJenkins WARを仮想サーバー上のTomcatインスタンスにデプロイしました。 「ビルドサーバー」。
このビルドサーバーには、myserver.example.com
、別の仮想サーバー。週末に、システムスタッフは物理サーバーを廃止し、myserver.example.com
virtualは存続し、そのスレーブにデプロイするように構成されたJenkinsジョブに対して次の例外を生成しました。
「詳細はログを参照」リンクをクリックすると、次のコンソール出力が表示されます。
[03/18/13 08:13:31] [SSH] Opening SSH connection to myserver.example.com:22.
Java.io.IOException: There was a problem while connecting to myserver.example.com:22
at com.trilead.ssh2.Connection.connect(Connection.Java:755)
at com.trilead.ssh2.Connection.connect(Connection.Java:546)
at hudson.plugins.sshslaves.SSHLauncher.openConnection(SSHLauncher.Java:650)
at hudson.plugins.sshslaves.SSHLauncher.launch(SSHLauncher.Java:283)
at hudson.slaves.SlaveComputer$1.call(SlaveComputer.Java:200)
at Java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.Java:303)
at Java.util.concurrent.FutureTask.run(FutureTask.Java:138)
at Java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.Java:886)
at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:908)
at Java.lang.Thread.run(Thread.Java:662)
Caused by: Java.net.NoRouteToHostException: No route to Host
at Java.net.PlainSocketImpl.socketConnect(Native Method)
at Java.net.PlainSocketImpl.doConnect(PlainSocketImpl.Java:351)
at Java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.Java:213)
at Java.net.PlainSocketImpl.connect(PlainSocketImpl.Java:200)
at Java.net.SocksSocketImpl.connect(SocksSocketImpl.Java:366)
at Java.net.Socket.connect(Socket.Java:529)
at com.trilead.ssh2.transport.TransportManager.establishConnection(TransportManager.Java:342)
at com.trilead.ssh2.transport.TransportManager.initialize(TransportManager.Java:450)
at com.trilead.ssh2.Connection.connect(Connection.Java:699)
... 9 more
[03/18/13 08:13:34] [SSH] Connection closed.
スレーブ(myserver.example.com
virtual)はオフラインです。ただし、Jenkinsを実際に使用したことがないため、Jenkinsマスターを構成してこれらのジョブを新しいスレーブにビルド/展開するための適切な手順と、新しいスレーブのセットアップ方法についてはわかりません。たとえば、新しいスレーブに何かをインストールする必要がありますか、それとも何らかのセットアップ/構成が必要ですか?前もって感謝します!
Jenkinsにスレーブを追加するのはとても簡単です。基本的に、UNIXスレーブを使用している場合、マシンへのSSHアクセスが必要です。また、Jenkins SSH Slavesプラグインをインストールする必要があります。それができたら、MasterのJenkinsの管理オプションに移動し、ノードの管理を選択します。
手順は次のとおりです。
スレーブにインストールされているツールについていくつかの仮定があります。特殊なツールがある場合は、それらを個別にインストールする必要がある場合があります(または、実行の直前にツールの移動を処理するプラグインを調べます)。ただし、すべてのビルドツール(おそらくJava、antなど)が含まれているテンプレートからノードが構築されている場合、これを実行するために必要なことはこれだけです。
私の場合、これはUbuntuにsshサーバーをインストールしていなかったためです。