Jenkins, SpringBoot, Linux, Gitee自動部署
相關軟件版本號:
Jenkins: 2.190.1
Java : openjdk version "1.8.0_232"
Linux: CentOS Linux release 7.7.1908 (Core)
Git: gitee.com (https://gitee.com/help/articles/4193)
作者的Jenkins就安裝在測試服務器上,跟jar要部署的服務器是同一個服務器,所以沒有使用 Build Environment-> Send files or execute commands over SSH功能
1. 創建一個JOB
配置的是Gitee Connection (https://gitee.com/help/articles/4193),其他參數默認
2. 源碼管理
2.1 配置Gitee.com上源碼的地址,以及登錄信息 ,具體可參考 https://gitee.com/help/articles/4193
2.2 Additional Behaviours: 選擇Clean before checkout,每次獲取源碼前先清理一下,以免有緩存導致有些文件未更新
2.3 Branch,獲取源代碼時,具體從哪個分支獲取,如: master, develop
3. 觸發構建
默認既可以,作者用來發布開發環境,或者直接用 Push Events 去觸發 origin/dev-20191015分支
4. 構建編譯環境
其他參數默認,Add pre-build step->Execute shell
編譯前停止SpringBoot 服務
stop-pls-admin8087.sh內容如下,
stop-pls-admin8087.sh和pls-admin8087.jar文件都在目錄 /mnt/diskb/mallplus-runnning下
4.1停止jar服務
4.2 刪除jar文件
#!/bin/sh
echo "Stop pls-admin8085 0.0.1............"
echo ".............stopping.................."
NAME='pls-admin8087.jar'
echo $NAME
ID=`ps -ef | grep "$NAME" | grep -v "$0" | grep -v "grep" | awk '{print $2}'`
echo $ID
echo "---------------"
for id in $ID
do
kill -9 $id
echo "killed $id"
done
rm -rf pls-admin8087.jar
echo "...........stopped successfully............"
5. 編譯
編譯時先清除之前的緩存,Goals and options: clean package
6. 編譯後執行命令
Add post-build steps->Execute shell
啓動SpringBoot jar文件
start-pls-admin8087.sh文件內容
6.1 拷貝編譯的Jar文件到執行目錄下,並改名, /mnt/diskb/mallplus-runnning/pls-admin8087.jar
6.2 以後臺進程模式啓動pls-admin8087.jar文件,並記錄日誌信息到日誌文件 pls-admin-run8087.log
6.3 如果jar服務啓動後不工作,可能是jenkins殺掉了啓動的服務,添加 BUILD_ID=dontKillMe 來避免被殺掉
6.4 如果執行shell時找不到一些環境變量,用 source /etc/profile 來主動載入環境變量
#!/bin/sh
echo "Start pls-admin8087 0.0.1............"
echo ".............starting.................."
source /etc/profile
BUILD_ID=dontKillMe
chmod +x /var/lib/jenkins/workspace/plsadmin/pls-admin/target/pls-admin-0.0.1-SNAPSHOT.jar
cp /var/lib/jenkins/workspace/plsadmin/pls-admin/target/pls-admin-0.0.1-SNAPSHOT.jar /mnt/diskb/mallplus-runnning/pls-admin8087.jar
chmod +x /mnt/diskb/mallplus-runnning/pls-admin8087.jar
nohup java -jar /mnt/diskb/mallplus-runnning/pls-admin8087.jar > pls-admin-run8087.log 2>&1 &
echo "...........started successfully............"
7. 上述動作如果都執行成功,則通過url和端口進行訪問測。
備註:Jenkins 環境配置
1. 配置java JDK , Linux下一般安裝免費的 Open JDK
如果提示不是JDK,這需要安裝open jdk devel版本,即開發版本
2. 配置MAVEN
3. 配置Node JS