1. 程式人生 > >Jenkins中的專案打包部署到遠端Tomcat

Jenkins中的專案打包部署到遠端Tomcat

Jenkins構建成功之後,可以在/usr/local/JenkinsHome/workspace中看到


在系統管理-外掛管理-已安裝外掛中,檢視publish over ssh是否安裝


hostname設定

192.168.0.239  為SVN、Nexus、Jenkins所在虛擬機器

192.168.0.240  為模擬測試環境虛擬機器

192.168.0.241 為模擬生產環境虛擬機器

分別修改240、241機器的hostname,下圖僅使用hostname指令修改主機名,重啟後失效

240   192.168.0.240-test

241   192.168.0.241-product


此外,還需要如下設定

vi  /etc/sysconfig/network


vi /etc/hosts


重啟後,檢視hostname


在192.168.0.239所在機器進行如下配置

vi /etc/hosts


/etc/hosts類似於DNS,即ip地址與hostname的對應關係。Linux系統在向DNS伺服器發出域名解析請求之前,先查詢/etc/hosts檔案,檢視是否存在相關記錄。

系統管理-系統設定-ssh remote hosts

設定登入240、241Linux虛擬機器的使用者名稱和密碼


新增證書


填寫使用者名稱、密碼及相關資訊


設定完成後的credential


系統管理-系統設定-ssh remote hosts

新增測試環境host


新增生產環境host


配置Publish over SSH,新增SSH Server: 192.168.0.240-test、192.168.0.241-product





Linux虛擬機器配置2個Tomcat

每一個tomcat配置指向自己的環境變數,否則2個Tomcat不能同時成功啟動

修改環境變數

vi /etc/profile

新增如下內容

# first tomcat
CATALINA_BASE=/usr/local/test-tomcat-01
CATALINA_HOME=/usr/local/test-tomcat-01
TOMCAT_HOME=/usr/local/test-tomcat-01
export CATALINA_BASE CATALINA_HOME TOMCAT_HOME


# second tomcat
CATALINA_2_BASE=/usr/local/test-tomcat-02
CATALINA_2_HOME=/usr/local/test-tomcat-02
TOMCAT_2_HOME=/usr/local/test-tomcat-02
export CATALINA_2_BASE CATALINA_2_HOME TOMCAT_2_HOME

執行指令source /etc/profile  ,使上述環境變數配置立即生效

第一個Tomcat即test-tomcat-01不做改動,只對第二個Tomcat即test-tomcat-02的catalina.sh、server.xml進行修改

vi catalina.sh

新增如下內容

export CATALINA_BASE=$CATALINA_2_BASE
export CATALINA_HOME=$CATALINA_2_HOME


vi server.sh

<Server port="8006" shutdown="SHUTDOWN">       8005修改為8006

<Connector port="8090" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />                                  8080修改為8090

<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />     8009修改為8010

此時,分別啟動test-tomcat-01、test-tomcat-02



上傳專案HBKeNong、HBKeNongPicture至192.168.0.239的SVN

在192.168.0.239虛擬機器中,檢視svn-tomcat已啟動


登入SVN的管控臺http://192.168.0.239:9090/svnadmin/     SVN管控臺的安裝與使用可參考《Linux中apache http server+svn+svnadmin整合》


下面需要新增2個專案HBKeNong、HBKeNongPicture



新增使用者組


給developer使用者組分配了使用者admin,此時admin就擁有了對HBKeNong的讀寫操作許可權


因為192.168.0.239虛擬機器上使用的是Apache和SVN整合,在使用svnadmin對資源進行管理的時候,使用者的group和user均需要為apache

vi /etc/httpd/conf/httpd.conf


然而新建的HBKeNong所屬的使用者組和使用者均為root,需要做如下設定

chown -R apache.apache HBKeNong

chmod -R 777 HBKeNong


選中待匯入的專案HBKeNong--右鍵Tortoise SVN -- Import


在SVN admin中檢視剛上傳的專案


HBKeNongPicture的操作同理。


下載SmartSVN,檢出專案並匯入到Eclipse中


在Jenkins中新建任務並執行構建






對HBKeNong執行構建操作


檢視構建過程的控制檯輸出




同理,HBKeNongPicture專案也構建成功了


將Jenkins構建的war包釋出到模擬測試環境

模擬測試環境在192.168.0.240Linux虛擬機器上,在/usr/local下面有test-tomcat-01test-tomcat-02分別用來部署HBKeNong、HBKeNongPicture

在192.168.0.240 測試環境虛擬機器中/usr/local目錄下,新建目錄test_env_update_war用於存放最新的待部署的war包,新建目錄test_env_script用於存放專案部署的指令碼,新建目錄test_war_backup用於存放war包的備份。


賦予test_HBKeNong_deploy.sh指令碼執行許可權

chmod 777 test_HBKeNong_deploy.sh

#!/bin/bash
DATE=`date +%F-%H-%M`

PROJECT='HBKeNong-1.0-SNAPSHOT'
PROJECT_TARGET='HBKeNong'

ROOTDIR='/usr/local'
TOMCAT_HOME='/usr/local/test-tomcat-01'

#停止tomcat服務
echo '停止test-tomcat-01'
sh ${TOMCAT_HOME}/bin/shutdown.sh
ps -ef | grep ${TOMCAT_HOME}/ | grep -v grep| awk '{print $2}' | xargs kill -9

cp ${ROOTDIR}/test_env_update_war/${PROJECT}.war ${ROOTDIR}/test_war_backup/test-${PROJECT}-${DATE}.war

rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}.war
rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}

mv ${ROOTDIR}/test_env_update_war/${PROJECT}.war ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}.war

#啟動tomcat服務
echo '啟動test-tomcat-01'
sh ${TOMCAT_HOME}/bin/startup.sh


其中,ps -ef | grep ${TOMCAT_HOME}/ | grep -v grep| awk '{print $2}' | xargs kill -9  的含義如下:


對HBKeNong進行構建



訪問http://192.168.0.240:8090/HBKeNongPicture/  ,測試可以正常訪問


HBKeNongPicture同理

在test-tomcat-02中的catalina.sh中新增如下內容

export JAVA_HOME=/usr/local/localsoftware/jdk1.8.0_121
export JRE_HOME=/usr/local/localsoftware/jdk1.8.0_121/jre


執行構建



訪問http://192.168.0.240:8090/HBKeNongPicture/



Tomcat設定開機自啟動

192.168.0.240   為模式測試環境,該虛擬機器上存在test-tomcat-01、test-tomcat-02

在192.168.0.240 執行指令   vi /etc/rc.d/rc.local,新增如下2行內容

sh    /usr/local/test-tomcat-01/bin/startup.sh

sh     /usr/local/test-tomcat-02/bin/startup.sh



重啟後,檢視是否tomcat已啟動