2012年9月9日日曜日

Jenkins のJNLPスレーブをちょっと便利にする方法

Jenkins で JNLP スレーブを使用していると、たま~に接続が切れたり、
ジョブが実行される度に例外で必ず失敗したり、なんかおかしくなったり…

そんな時は、リモートでスレーブマシンにログインして、スレーブを再起動させるのですが、
このひと手間がメンドイ!ってことで、こんなバッチファイル書いて使ってます。

@echo off

if "x%~1" == "x" (
    @echo スレーブ名を指定してください。
    goto error
)

rem Config
SET SLAVE_NAME=%~1
SET SLAVE_OPTION=-Xmx512m
SET JENKINS_COMPUTER_URL=http://localhost:8080/computer/
SET JNLP_PATH=%JENKINS_COMPUTER_URL%%SLAVE_NAME%/slave-agent.jnlp

:loop
@echo N | start /WAIT /REALTIME "%SLAVE_NAME%" "java" %SLAVE_OPTION% -jar slave.jar -jnlpUrl %JNLP_PATH%
ping localhost > NUL
goto loop

:end
exit /b 0

:error
exit /b 1

第一引数にスレーブ名を指定します。
スレーブを起動して、なんらかの理由でそれが終了した場合、再起動させます。

仕組みとしてはものすごく単純ですが、
これでスレーブが切断されてしまった場合に、勝手に再接続してくれます。

また、Jenkins のスレーブのページから「切断」メニューを押すことで、
スレーブマシンに入ることなくスレーブの再起動ができるようになるオマケ付き!



0 件のコメント:

コメントを投稿