CentOS を Jenkins のスレイブマシーンに追加する方法
ノードの追加
Jenkinsの管理
-> ノードの管理 -> 新規ノード作成
-> ノード名を入力 -> ダムスレーブを選択 -> OK
以下のノード情報を入力してOK
ノード名、説明、ラベルは都度変更
ノード名:test
説明:
同時ビルド数:1
リモートFSルート:/var/lib/jenkins
ラベル:test
用途:このマシーンを特定ジョブ専用にする
起動方法:JNLP経由でスレーブを起動
可用性:可能な限りオンラインのままにする
スレーブマシーン側の設定
スレーブマシーンにログイン後、
起動ユーザーを作成
# useradd jenkins
ワークディレクトリを作成
# mkdir -p /var/lib/jenkins
# chown -R jenkins:jenkins /var/lib/jenkins
設定ファイルを作成
JENKINS_URL は Jenkins のアクセスURL
JENKINS_NODENAME は 作成したノード名
JENKINS_SECRET は 作成したノードページに書いてある -secret の値
# vi /etc/sysconfig/jenkins-slave
JENKINS_WORKDIR="/var/lib/jenkins"
JENKINS_USER="jenkins"
JENKINS_URL="https://210.0.0.0:41001/jenkins"
JENKINS_NODENAME="test"
JENKINS_SECRET="9f1819708de5b9ddd1033847172e9157b152e509f404e4274f10ef8b63c30346"
JENKINS_OPTION="-noCertificateCheck"
# chmod 600 /sysconfig/jenkins-slave
起動サービスの作成
# vi /etc/init.d/jenkins-slave
#!/bin/sh
#
# jenkins-slave: Launch a Jenkins BuildSlave instance on this node
#
# chkconfig: - 99 01
# description: Enable this node to fulfill build jobs
#
# Source function library.
. /etc/rc.d/init.d/functions
[ -f /etc/sysconfig/jenkins-slave ] && . /etc/sysconfig/jenkins-slave
[ -n "$JENKINS_URL" ] || exit 0
[ -n "$JENKINS_WORKDIR" ] || exit 0
[ -n "$JENKINS_USER" ] || exit 0
[ -n "$JENKINS_NODENAME" ] || exit 0
[ -n "$JENKINS_SECRET" ] || exit 0
[ -n "$JENKINS_OPTION" ] || exit 0
[ -x /usr/bin/java ] || exit 0
download_jar()
{
curl -s -o slave.jar $JENKINS_URL/jnlpJars/slave.jar || exit 0
}
start()
{
cd $JENKINS_WORKDIR
[ -f slave.jar ] || download_jar
echo -n $"Starting $prog: "
su $JENKINS_USER sh -c "\
java -jar slave.jar -jnlpUrl $JENKINS_URL/computer/$JENKINS_NODENAME/slave-agent.jnlp -secret $JENKINS_SECRET $JENKINS_OPTION >slave.log 2>&1 &"
if [ $? = 0 ]; then echo '[OK]'; else echo '[NG]'; fi
}
stop()
{
echo -n $"Shutting down $prog: "
PID=`ps -ef | grep '[j]ava -jar slave.jar' | awk '{print $2}'`
[ -n "$PID" ] && kill $PID
if [ $? = 0 ]; then echo '[OK]'; else echo '[NG]'; fi
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
;;
status)
status java
;;
*)
echo $"Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
# chmod 755 /etc/init.d/jenkins-slave
起動サービスに登録
# chkconfig --add jenkins-slave
# chkconfig jenkins-slave on
# chkconfig --list jenkins-slave
起動
# service jenkins-slave start
slave.jar がダウンロードが失敗した場合は手動で配置
slave.jar は 作成したノードページからダウンロード可能
# mv slave.jar /var/lib/jenkins/