我們來一起搭建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環境已經搭建好了
- 查看圖片附件