JenkinsのスレーブをJNLPを使って動かしたい
マスター側の準備
- Jenkins → グローバルセキュリティの設定 → Agents
TCP port for inbound agentsをランダムに変更- Jenkins → ノードの管理
- 新規ノード作成
- 以下の内容を参考にノードの設定を行う
| 項目 | 内容 |
|---|---|
| ノード名 | ホスト名などにしておくと探しやすい |
| 説明 | ノードの用途などを記入 |
| 同時ビルド数 | PCのスペックとジョブの内容に合わせて |
| リモートFSルート | スレーブのエージェントが実行されるディレクトリをフルパスで指定 |
| ラベル | タグ名。Windowsなど分類しやすい名称を記入 |
| 用途 | このスレーブをできるだけ使用する |
| 起動方法 | Launch agent by connectiong it to the master |
| 可用性 | Keep this agent online as much as possible |
この時Use WebSocketを有効にすると、この後スレーブ側でWindowsサービスとしてインストールできなくなるので注意して下さい。
スレーブ側の準備
- スレーブ側のPCからブラウザでマスターのJenkinsを開く
- Jenkins → ノードの管理 → スレーブの設定を開く
- LaunchボタンをクリックするとJNLPファイルのダウンロードが始まるので取得する
- ちなみにagent.jarをダウンロードすることが出来る。
- 秘密鍵などの情報があるので、これを利用してコマンドラインからの起動できる
- ダウンロードしたJNLPファイルを実行
- ファイルメニューに
Install as a serviceが現れるので、サービスとして登録する場合は選択 - エラーが出る場合は管理者権限が必要なので、管理者権限のコマンドラインを開き
javaws slave-agent.jnlpを実行する