私は最近、Jenkins 駆動の Java プロジェクトを引き継ぎましたが、そのプロジェクトでは主要な開発者が突然辞めてしまいました。彼は Jenkins WAR を仮想サーバー上の Tomcat インスタンスにデプロイしており、それが「ビルド サーバー」とみなされていました。
このビルド サーバーには、別の仮想サーバーである にビルドおよびデプロイするように構成されたスレーブがありましたmyserver.example.com
。週末に、システム スタッフが仮想サーバーがmyserver.example.com
稼働していた物理サーバーを廃止したため、そのスレーブにデプロイするように構成された 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
) がオフラインなので、これは理にかなっています。ただし、Jenkins の実際の使用経験がないため、これらのジョブを新しいスレーブにビルド/デプロイするように Jenkins マスターを構成するための適切な手順と、新しいスレーブの設定方法がわかりません。たとえば、新しいスレーブに何かをインストールしたり、何らかのセットアップ/構成を行う必要がありますか? よろしくお願いします!
ベストアンサー1
Jenkinsにスレーブを追加するのはとても簡単です。基本的に、Unixスレーブを使用している場合は、マシンへのSSHアクセスが必要です。また、Jenkins SSHスレーブプラグインインストールしたら、Jenkinsを管理するオプションマスター選択してノードの管理。
手順は次のようになります。
- クリック新しいノード
- 選択する愚かな奴隷名前を付けます(シンボリックで、ドメイン名である必要はありません。ドメイン名は後で指定します)。
- [OK]をクリックして設定ページに進みます
- 記入してください執行者の数そのノードで同時に実行したいプロセスの数(通常は割り当てられたCPUコアの数以下)
- 記入してくださいリモート FS ルートJenkinsが作業ファイルを保存する場所へのフルパス
- オプションで追加ラベルシステムでそれらを使用している場合(多くの場合は必要ありませんが、プロジェクトによっては、特定のジョブの実行者のプールにノードが特定のラベルを持つことが必要になる場合があります)
- 選択するSSH経由でUnixマシン上でスレーブエージェントを起動する下起動方法(まだ選択されていない場合)
- 完全修飾ドメイン名をホストフィールドの下に表示される起動方法ライン
スレーブにインストールされるツールについては、いくつかの前提があります。特殊なツールがある場合は、それらを個別にインストールする必要があります (または、実行直前にツールの移動を処理するプラグインを確認してください)。ただし、ノードが、すべてのビルド ツール (おそらく、java、ant など) を含むテンプレートから構築されている場合は、これだけで作業を開始できます。