Jenkinsの起動スクリプトを作った時の記録 | Pimp my Code. @wataru420

Pimp my Code. @wataru420

My name is Wataru Fukunaga.

みんな大好きJenkins先生
Tomcatなんかのサーブレットコンテナに入れないで直接実行する場合の起動スクリプトを作ったので、
その時の記録を残しておきます。

CentOSでやってます。

Jenkinsの取得


/usr/local/jenkinsというディレクトリに入れました。

wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war
sudo mkdir /usr/local/jenkins
sudo cp jenkins.war /usr/local/jenkins/

startスクリプトの作成


warと同じディレクトリに配置

#!/bin/bash
JENKINS_WAR=/usr/local/jenkins/jenkins.war
JENKINS_LOG=/home/jenkins/jenkins.log
JAVA=/usr/local/java/bin/java
nohup nice $JAVA -jar $JENKINS_WAR > $JENKINS_LOG 2>&1 &

stopスクリプト作成


warと同じディレクトリに配置

#!/bin/bash
kill `ps -ef | grep [j]enkins.war | awk '{ print $2 }'`

ユーザーの作成


Jenkins専用ユーザーを作っておきます。

/usr/sbin/groupadd -g 30119 jenkins
/usr/sbin/useradd -u 30119 -g jenkins jenkins
 
mkdir /home/jenkins
chown -R jenkins. /home/jenkins
view raw addUser This Gist brought to you by GitHub and Gist2Ameblo.

起動スクリプトの作成


/etc/init.dに配置します。

#! /bin/bash
#
# jenkins Start/Stop the Jenkins Continuous Integration server.
 
 
# Source function library.
. /etc/rc.d/init.d/functions
 
# Get config.
. /etc/sysconfig/network
 
# Check that networking is up.
[ "${NETWORKING}" = "no" ] && exit 0
 
startup=/usr/local/jenkins/start-jenkins.sh
shutdown=/usr/local/jenkins/stop-jenkins.sh
export JAVA_HOME=/usr/local/java/
JENKINS_USER=jenkins
 
start(){
 echo -n $"Starting Jenkins service: "
 su - $JENKINS_USER -c $startup
 RETVAL=$?
 echo
}
 
stop(){
 action $"Stopping Jenkins service: "
 su - $JENKINS_USER -c $shutdown
 RETVAL=$?
 echo
}
 
status(){
 numproc=`ps -ef | grep [j]enkins.war | wc -l`
 if [ $numproc -gt 0 ]; then
  echo "Jenkins is running..."
  else
  echo "Jenkins is stopped..."
 fi
}
 
restart(){
  stop
  sleep 5
  start
}
 
 
# See how we were called.
case "$1" in
start)
 start
 ;;
stop)
 stop
 ;;
status)
 status
 ;;
restart)
 restart
 ;;
*)
 echo $"Usage: $0 {start|stop|status|restart}"
 exit 1
esac
 
exit 0
view raw jenkins This Gist brought to you by GitHub and Gist2Ameblo.

作ったファイルたちの権限を変えます。


chown -R jenkins. /usr/local/jenkins
chmod a+x /usr/local/jenkins/start-jenkins.sh
chmod a+x /usr/local/jenkins/stop-jenkins.sh
 
chmod a+x /etc/init.d/jenkins
view raw chown This Gist brought to you by GitHub and Gist2Ameblo.


これで /etc/init.d/jenkins start とか /etc/init.d/jenkins stop とか /etc/init.d/jenkins restart なんかできちゃいます。

Jenkins実践入門 ~ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)Jenkins実践入門 ~ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)
佐藤 聖規 和田 貴久 河村 雅人 米沢 弘樹 山岸 啓

技術評論社 2011-11-11
売り上げランキング : 11767

Amazonで詳しく見る
/td>