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