Rock'n'Hack ブログ

それなりハッカーを目指して、もろもろのメモ。bloggerから引っ越しました。

Jenkins-slaveの起動スクリプト

Jenkinsのスレーブを立てる際に、いつもSSHでサーバ側から起動するように設定していたけど、
ファイアウォールの設定の関係で、jnlpで起動する必要がありました。

で、slaveはCentOSでXを入れてないので、slave側で下記コマンドを打って起動することに。

java -jar slave.jar -jnlpUrl $JENKINS_URL/computer/$JENKINS_NODENAME/slave-agent.jnlp
参考: https://wiki.jenkins-ci.org/display/JENKINS/Distributed+builds#Distributedbuilds-Launchslaveagentheadlessly

これでOKなのだけどリブートとかした際に、再度コマンドを打つ必要がある。
/etc/rc.local に直接コマンドを打ってみたりしたけど、うまくいかなかったので、
下記サイトを参考に、というかほぼまんまの起動スクリプトを作ってサービスに登録しました。
http://wiki.whamcloud.com/display/PUB/Jenkins+Build+Slave+Setup


daemonの扱いがよく分からなかったので、若干力技です。。
参考元のサイトとの違いは、ほぼ無い(汗)のだけど、とりあえずstopの時に'java'でgrepして
killされるのはちょっとあれだったので、愚直にjenkins-slaveのpidを取ってきました。

これでとりあえずやりたいことは出来ました。
ただ、まだリブートした時とか、master側でちゃんと認識してもらえない時がある。。
まぁひとまずはOKなので、ちょっとずつ修正していこう。

おしまい。

Jenkins本は後で読み返すと、「あ、これ今回のケースで使えるな」ってことが結構あります。