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
を実行する