在公司使用 Jenkins 软件已经有一段时间了,走了很多弯路,但也积累了一些经验,可以和大家分享一下。 
我们来一起搭建Jenkins环境。首选你需要安装好JRE/JDK和Tomcat。由于这不是本文的重点,所以关于其安装过程就跳过不谈。 
我实验用的服务器操作系统为64位版本的CentOS 5.4,安装JDK 版本为 64位的 1.6.0;安装Tomcat版本为 7.0.14。 
题外话,为了解决可能出现的 OutOfMemoryError: PermGen space 问题,需要修改一下$TOMCAT_HOME/bin/catalina.sh 文件,添加一句 

JAVA_OPTS="-Xms512m -Xmx768m -XX:MaxNewSize=256m -XX:MaxPermSize=128m"


在Jenkins 官方网站(http://jenkins-ci.org/)下载最新版本war包。拷贝到 $TOMCAT_HOME/webapps 下(不用解压),删除 webapps 下其他目录(当然也可以不用Tomcat直接启动Jenkins,因为他已经内嵌了Jetty)。 
现在我们创建一个用于存放所有Jenkins数据的目录,比如 /jenkins。添加环境变量 JENKINS_HOME 到 /etc/profile 中指向这个路径。 

export JENKINS_HOME=/jenkins


现在我们可以启动 $TOMCAT_HOME/bin/startup.sh 来启动Jenkins了,但这样每次启动太麻烦,我们把它做成一个服务来启动。 
在 /etc/init.d/ 下创建一个 jenkins 文件 

# vi /etc/init.d/jenkins


内容如下,如果你希望用指定用户启动,请修改 JENKINS_USER=root 的值,但要记得更改 /jenkins 以及Tomcat 目录的访问权限。另外其他环境变量例如 JAVA_HOME 和 TOMCAT_HOME 要根据你实际JDK和Tomcat的安装目录修改。 

#!/bin/sh## Startup script for the Jenkins Continuous Integration server# (via Jakarta Tomcat Java Servlets and JSP server)## chkconfig: - 85 15# description: Jakarta Tomcat Java Servlets and JSP server# processname: tomcat# pidfile: /var/run/tomcat.pid#!/bin/sh## Startup script for the Jenkins Continuous Integration server# (via Jakarta Tomcat Java Servlets and JSP server)## chkconfig: - 85 15# description: Jakarta Tomcat Java Servlets and JSP server# processname: tomcat# pidfile: /var/run/tomcat.pid # Set Tomcat environment.JENKINS_USER=rootLOCKFILE=/var/lock/jenkinsexport PATH=/usr/local/bin:$PATHexport HOME=/jenkinsexport JAVA_HOME=/usr/local/jdk1.6.0_25export JENKINS_BASEDIR=/jenkinsexport TOMCAT_HOME=/usr/local/tomcat-7.0.14export CATALINA_PID=$JENKINS_BASEDIR/jenkins-tomcat.pidexport CATALINA_OPTS="-DJENKINS_HOME=$JENKINS_BASEDIR/jenkins-home -Xmx512m -Djava.awt.headless=true" [ -f $TOMCAT_HOME/bin/catalina.sh ] || exit 0 export PATH=$PATH:/usr/bin:/usr/local/bin # See how we were called.case "$1" in  start)        # Start daemon.        echo -n "Starting Tomcat: "        su -p -s /bin/sh $JENKINS_USER -c "$TOMCAT_HOME/bin/catalina.sh start"        RETVAL=$?        echo        [ $RETVAL = 0 ] && touch $LOCKFILE        ;;  stop)        # Stop daemons.        echo -n "Shutting down Tomcat: "        su -p -s /bin/sh $JENKINS_USER -c "$TOMCAT_HOME/bin/catalina.sh stop"        RETVAL=$?        echo        [ $RETVAL = 0 ] && rm -f $LOCKFILE        ;;  restart)        $0 stop        $0 start        ;;  condrestart)       [ -e $LOCKFILE ] && $0 restart       ;;  status)        status tomcat        ;;  *)        echo "Usage: $0 {start|stop|restart|status}"        exit 1esac exit 0


安装如下命令将Jenkins做成服务启动(以后启动和停止Jenkins也使用 service 命令)。 

# chmod a+x /etc/init.d/jenkins# chkconfig jenkins />

我们打算在这台上装个  做一下反向代理,为了方便,我选择使用RPM包安装的方式:



新建一个文件 /etc/nginx/conf.d/jenkins.conf 内容如下(注释掉的两行是打印日志用的,一般情况下不用打开):



现在启动 Nginx 



我们先修改一下本机的 hosts 文件(C:\\System32\drivers\etc\hosts)添加:



这次我们在里输入 http://ci.abc.com/jenkins 可以看到页面了!

----------------------------------------明确指明此文为转载