17
19

More than 5 years have passed since last update.

CentOS を Jenkins のスレイブマシーンに追加する方法

Last updated at Posted at 2014-05-09

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/
17
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
19