jenkins配置自動部署java程序


任務背景

該項目包含4個程序包:a.jar,b.jar,c.jar,d.jar,每次啟動前需要修改程序中的配置文件(修改數據源配置),然后按照先后順序啟動。

任務目標

1.利用jenkins拉取代碼,且在打包前就修改好配置文件
2.打好包后,將4個程序包傳輸至測試服務器,並遠程執行事先寫好的啟動腳本

配置步驟

1.先新建一個Maven任務,配置好源碼地址以及build配置

2.完成上述配置后,構建一次,看看工作空間的內容
這里顯示的就是這個工程的代碼結構,即從git拉取代碼后在jenkins工作空間的展示情況
3.修改配置文件
這次需要修改2個配置文件,一個是appr-law-items-service.jar中的application.yml,一個是appr-law-regulation-service中的application.yml
 
修改配置文件,利用的sed命令
可以在Pre Steps中添加“執行shell”
rm -f ${WORKSPACE}/apr-aw-api-gateway/target/*.jar 
rm -f ${WORKSPACE}/appr-law-items-service/target/*.jar 
rm -f ${WORKSPACE}/appr-law-registry-eureka/target/*.jar 
rm -f ${WORKSPACE}/appr-law-regulation-service/target/*.jar 
sed -r -i 's#192.xxx:3306/law_item#192.1xxx:3306/law_item#g' ${WORKSPACE}/appr-law-items-service/src/main/resources/application.yml 
sed -r -i 's#password: 123#password: 123456#g' ${WORKSPACE}/appr-law-items-service/src/main/resources/application.yml 
sed -r -i 's#192.xxx:3306/law_item#192.xxx:3306/law_item#g' ${WORKSPACE}/appr-law-regulation-service/src/main/resources/application.yml 
sed -r -i 's#password: 123#password: 123456#g' ${WORKSPACE}/appr-law-regulation-service/src/main/resources/application.yml

這里的關鍵在於,如何找到application.yml文件的位置(注意是打包前這個文件的路徑)
開始我找的是 “ appr-law-items-service / target / classes /"下的application.yml

 

后來發現不對,改這個文件沒有效果(這個是打包后的文件了)
后來又找到 appr-law-items-service / src / main / resources /的application.yml
這個是源碼中的配置文件,修改這個文件就會生效
改動位置如下
經過上述配置就達到了打包前修改配置文件了目的(也可以下載打包好的jar文件,解壓看看配置文件是否修改成功)
 
4.利用send build artifacts over ssh 插件配置遠程部署
jenkins安裝在154服務器,現在需要把打好的程序包傳輸到133服務器,並在133服務器進行遠程部署
 
在構建后操作中添加send build artifacts over ssh 插件

Transfer Set Source files:需要上傳的文件(相對於工作區的路徑。看后面的配置可以填寫多個,默認用,分隔)(直接到工作空間中找到這個文件,拷貝目錄即可)

Remote directory:遠程目錄
Exec command:把你要執行的命令寫在里面(這里我寫的是切換到ZFSXK目錄,然后執行事先寫好的啟動文件)
高級:
Flatten files:只上傳文件,不創建目錄(除了遠程目錄)
 
 
最終構建完成后,打開133服務器,切換到ZFSXK目錄,查看,如下
顯示傳輸過來的4個jar包,且執行了start.sh文件

start.sh是事先寫好的啟動文件,寫完賦予執行權限執行即可

#! /bin/sh

jps -l | grep a.jar | awk  '{print $1}'  | xargs kill -9
jps -l | grep b.jar | awk  '{print $1}'  | xargs kill -9
jps -l | grep c.jar | awk  '{print $1}'  | xargs kill -9
jps -l | grep d.jar | awk  '{print $1}'  | xargs kill -9

cd /u01/ZFSXK
nohup /u01/jdk1.8.0_11/bin/java -jar a.jar >euceka.log 2>&1 &
echo "啟動a程序"

nohup /u01/jdk1.8.0_11/bin/java -jar b.jar >gateway.log 2>&1 &
echo "啟動b程序"

nohup /u01/jdk1.8.0_11/bin/java -jar c.jar >items-service.log 2>&1 &
echo "啟動c程序"

nohup /u01/jdk1.8.0_11/bin/java -jar d.jar >regulation-service.log 2>&1 &
echo "啟動d程序"

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM