jenkins-自動化部署任務開發(maven和非maven項目)

自動化部署任務開發(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個任務

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章