jenkins自動化部署項目8 -- 新建job(服務代碼部署在linux上)


jenkins(windows) ----> 應用服務器(linux):

1。后台java服務:

與部署在windows上不同的是,這里我選擇了在【構建后操作】中使用ssh向遠程linux服務器傳送jar包和需要執行的命令

 

sh /root/home/scripts/demo.sh 8007
cp -r /home/soft/project/sr_f5_manage/sr_f5_manage-0.0.1-SNAPSHOT.jar /home/soft/jarpackage
#每次構建都會有日志,為了不越來越多,每次運行項目之前會清空下這個文件nohup.out
cp /dev/null nohup.out cd /home/soft/jarpackage nohup java -jar sr_f5_manage-0.0.1-SNAPSHOT.jar & sleep 10
#此處之所以加上sleep 10 是因為一開始雖然構建成功,但是netstat -nlp | grep 8007查看進程發現找不到進程,因為項目啟動需要時間,嘗試着sleep發現就好了

BUILD_ID=dontKillMe:網上很多人說構建結束,服務進程會被kill,需要加上這個才行。我試了下,不要這個時進程也不會被kill

#這個就是上面的demo.sh腳本,根據項目端口查找進程,然后kill掉
port=$1 if [ "${port}" == "" ];then exit 1 fi #根據端口號查詢對應的pid,端口號在執行腳本時做為參數 pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F "/" '{ print $1 }'); #殺掉對應的進程,如果pid不存在,則不執行 if [ -n "$pid" ]; then kill -9 $pid; fi

 

ps:這樣配置之后,構建還是會有問題,如圖。jenkins不會正常結束構建,而是直到超時:

 

這時就需要在【高級】選項那里勾選上Exec in pty,這樣就可以正常了。參考地址:  https://blog.csdn.net/u013066244/article/details/52788407

 

 

 

 2.前端:我們前端使用tomcat,和后端沒什么不一樣,只有配置的腳本不一樣。如圖,因為比較簡單,就不單獨貼出來了

圖中第一行命令是關掉tomcat服務,如果tomcat本身沒有運行則構建會報錯,因此需要先判斷下tomocat服務是否正在運行,我直接用上面的demo.sh腳本去代替這一步

sh /root/home/scripts/demo.sh 8080

 

Source files的匹配規則可以了解下:

* matches zero or more characters, ? matches one character.

 


免責聲明!

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



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