Jenkins使用經驗談1(一步一步搭建Jenkins環境)

在公司使用 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=root
LOCKFILE=/var/lock/jenkins
export PATH=/usr/local/bin:$PATH
export HOME=/jenkins
export JAVA_HOME=/usr/local/jdk1.6.0_25
export JENKINS_BASEDIR=/jenkins
export TOMCAT_HOME=/usr/local/tomcat-7.0.14
export CATALINA_PID=$JENKINS_BASEDIR/jenkins-tomcat.pid
export 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 1
esac
 
exit 0


安裝如下命令將Jenkins做成服務啓動(以後啓動和停止Jenkins也使用 service 命令)。
# chmod a+x /etc/init.d/jenkins
# chkconfig jenkins />



我們打算在這臺服務器上裝個 Nginx 做一下反向代理,爲了方便,我選擇使用RPM包安裝的方式:



# wget http://nginx.org/packages/rhel/5/x86_64/RPMS/nginx-1.0.9-1.el5.ngx.x86_64.rpm
# rpm -ivh nginx-1.0.9-1.el5.ngx.x86_64.rpm


新建一個配置文件 /etc/nginx/conf.d/jenkins.conf 內容如下(註釋掉的兩行是打印日誌用的,一般情況下不用打開):

server {
    listen       80;
    server_name  ci.abc.com;
    #access_log /var/log/jenkins_access_log main;
    #error_log  /var/log/jenkins_error_log  debug_http;
    client_max_body_size 60M;
    client_body_buffer_size 512k;
    location / {
        proxy_pass      http://localhost:8080;
        proxy_redirect  off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}



現在啓動 Nginx

# service nginx start


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

172.16.12.80 ci.abc.com


這次我們在瀏覽器裏輸入 http://ci.abc.com/jenkins 可以看到頁面了!

Jenkins使用經驗談1(一步一步搭建Jenkins環境)

到這裏基本的Jenkins環境已經搭建好了
  • 查看圖片附件
發佈了20 篇原創文章 · 獲贊 8 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章