自動化部署任務開發(maven)
注意:這一部分的操作不是在之前的2臺服務器上(jenkins服務器和應用部署服務器),而是在測試人員自己的workpc上
流程介紹
git 同步最新代碼--maven打包--停止tomcat--部署應用--啓動tomcat--驗證結果
項目準備
Maven項目中需要寫一個deploy.sh文件放到項目根目錄下
文件具體代碼:
注意:代碼中war包項目名,需要和pom.xml文件中設置的項目名(如果不設置,那麼maven項目打包的war包名後面會跟0.0.1-SNAPSHOT)一致
#!/usr/bin/env bash
# 編譯+部署order站點
#需要配置如下參數
#項目路徑,在Execute Shell 中配置項目路徑,pwd就可以獲得該項目路徑
#export PROJ_PATH=這個jenkins任務在部署機器上的路徑
#輸入你的環境上tomcat的全路徑
# export TOMCAT_APP_PATH=tomcat在部署機器上的路徑
### base 函數,關閉tomcat
killTomcat()
{
pid=`ps -ef|grep tomcat|grep java|awk '{print $2}'`
echo "tomcat Id list :$pid"
if [ "$pid" = "" ]
then
echo "no tomcat pid alive"
else
kill -9 $pid
fi
#上面或者下面的方法都可以
#cd $TOMCAT_APP_PATH/bin
#sh shutdown.sh
}
cd $PROJ_PATH/oa_maven_ssm
mvn clean install
# 停tomcat
killTomcat
# 刪除原有工程
rm -rf $TOMCAT_APP_PATH/webapps/oa_maven_ssm
rm -f $TOMCAT_APP_PATH/webapps/oa_maven_ssm.war
# 複製新的工程到tomcat上
cp $PROJ_PATH/target/oa_maven_ssm.war $TOMCAT_APP_PATH/webapps/
cd $TOMCAT_APP_PATH/
# 啓動Tomcat
cd $TOMCAT_APP_PATH/
sh bin/startup.sh
訪問jenkins,創建jenkins任務
新建任務,構建一個自由風格的軟件
填寫service信息
選擇JDK(默認system選項就行了)
把項目部署在某個節點上
勾上retrict where this project can be run
填寫要構建的節點
配置git參數
設置gitlab源碼庫的位置,每次構建,jenkins都會去原碼庫拉取
repository url填寫源碼倉庫的位置
可選項:源代碼默認下載到:/root/.jenkins/workspace/你構建的工程名,可以手動設置下載的目錄,設置方法:
additional behavior 右側點擊add,選擇check-out to a sub-directory,給從gitlab要下載到的目錄命名.如下圖:
如果填寫了oa,那麼下載到的目錄就是:/root/.jenkins/workspace/構建的工程名/oa
填寫構建語句,實際構建測試環境
這裏採用shell腳本來實現自動化部署
在build區域點擊addbuildstep,選擇執行shell
輸入
BUILD_ID=DONTKILLME: jenkins執行完成後jenkins進程會關閉但是service進程不會被殺掉
./etc/profile: 作用:加載配置項
export PROJ_PATH=’pwd’
Export TOMCAT_APP_PATH=/root/apace-tomcat-9.0.14
作用:給接下來的deploy.sh文件中的參數賦值,’pwd’的意思是當前所在文件路徑
Sh $PROJ_PATH/deploy.sh
作用:執行項目根目錄下的shell文件
保存構建配置
啓動服務
執行部署任務
點擊左側立即構建
確定執行結果成功
在構建歷史裏會出現所有的構建記錄,藍色的代表構建成功(不一定能運行,只是完整走完了構建這個流程),紅色代表構建失敗.
點進這個構建,再點擊右側的控制檯輸出,就能看到完整的構建過程.
打開瀏覽器訪問
輸入url
應用部署服務器(也就是節點所在ip):tomcat端口/工程名/XXX
自動化部署任務開發(非maven)
注意:這一部分的操作不是在之前的2臺服務器上(jenkins服務器和應用部署服務器),而是在測試人員自己的workpc上
流程介紹
git 同步最新代碼--停止tomcat--ant腳本打包--部署應用--啓動tomcat--驗證結果
項目準備
項目中需要寫一個build.xml文件放到項目根目錄下(ant會自動檢測項目根目錄下的build.xml文件)
Xml文件內容較多,請訪問
http://192.168.1.57/root/jenkins_oa_test/blob/master/deploy.sh
訪問jenkins,創建jenkins任務
新建任務,構建一個自由風格的軟件
填寫service信息
選擇JDK(默認system選項就行了)
把項目部署在某個節點上
勾上retrict where this project can be run
填寫要構建的節點
配置git參數
設置gitlab源碼庫的位置,每次構建,jenkins都會去原碼庫拉取
repository url填寫源碼倉庫的位置
可選項:源代碼默認下載到:/root/.jenkins/workspace/你構建的工程名,可以手動設置下載的目錄,設置方法:
additional behavior 右側點擊add,選擇check-out to a sub-directory,給從gitlab要下載到的目錄命名.如下圖:
如果填寫了oa,那麼下載到的目錄就是:/root/.jenkins/workspace/構建的工程名/oa
填寫構建語句,實際構建測試環境
這裏採用shell命令和build.xml文件聯合實現自動化部署
Build.xml文件實現遍歷+打包+部署
Shell命令負責關閉啓動tomcat
寫法如下:2個shell命令中間插入ant指令
在build區域點擊addbuildstep,選擇執行shell
輸入:
pid=`ps -ef|grep tomcat|grep java|awk '{print $2}'`
echo "tomcat Id list :$pid"
if [ "$pid" = "" ]
then
echo "no tomcat pid alive"
else
kill -9 $pid
fi
作用:關閉tomcat服務器
在build區域點擊addbuildstep,選擇invoke ant(執行ant腳本)
選擇之前配置的全局工具
Targets裏面可以不寫,不寫默認爲all,意思是執行build.xml文件裏所有的標籤,如:clean,install,build
再建一個shell命令,輸入
#防止jenkins構建完成後殺死由jenkins啓動的tomat進程
BUILD_ID=DONTKILLME
. /etc/profile
# 啓動Tomcat
export TOMCAT_APP_PATH=/root/apache-tomcat-9.0.14
cd $TOMCAT_APP_PATH/
sh bin/startup.sh
保存構建配置
啓動服務
執行部署任務
點擊左側立即構建
確定執行結果成功
在構建歷史裏會出現所有的構建記錄,藍色的代表構建成功(不一定能運行,只是完整走完了構建這個流程),紅色代表構建失敗.
點進這個構建,再點擊右側的控制檯輸出,就能看到完整的構建過程.
打開瀏覽器訪問
輸入url
應用部署服務器(也就是節點所在ip):tomcat端口/工程名/XXX
問題釋疑
找不到jdk或ant路徑
如果你構建任務的環境變量是默認,那麼可能出現這個錯誤,建議看一下3.2.5.
如果不是默認,那麼請確認構建任務的的java_home或ant_home和節點所在服務器的是否一致
定時構建
可以在任務裏設置定時構建,來實現週期性的自動化部署項目
需求:每天11.30 ,16.30各構建一次
點擊任務進去,點擊左側的configuration,找到build triggers
如果想每天 11.30 16.00各構建一次,那麼就構建2個任務