使用 jenkins 自動化部署應用(寫給新手的)


jenkins官網: https://jenkins.io/

jenkins.war 的下載地址
鏈接:https://pan.baidu.com/s/1fhlnxpkQwwkIzurGdrqEiA
提取碼:nn32

准備環境

  • linux 服務器一台 (version: 7.4 ,bit: 64)
  • 服務器安裝好 JDK (version: 1.8 ,bit: 64)
  • 服務器安裝好 tomcat (version: 8.0.52)
  • 服務器安裝好 maven (version: 3.5.0)
  • 服務器安裝好 svn git (兩個選一個安裝,我這里以svn為例)
  • 將下載好的 jenkins.jar 放到 ./tomcat/webapps/ 目錄下,並啟動 tomcat (jenkins.war可以去官網下)

請保證上述環境都已准備完畢…

登錄jenkins

啟動 tomcat 后,在瀏覽器輸入:localhost:8080/jenkins (我的tomcat使用的是 8080 端口)
在這里插入圖片描述
jenkins第一次啟動時會將密鑰存在一個文件中,當第一次登錄時,需要進行驗證。我們將頁面中提示的路徑打開,將里面的內容填入圖中的文本框中,然后我們點 Continue 
在這里插入圖片描述
初始化中,讓子彈飛一會~ 
在這里插入圖片描述
這個頁面提示你安裝一些插件,左邊是 jenkins 推薦安裝的插件,右邊是告訴你可以自已選擇哪些裝。
Tips: 如果沒有特別要求,可以選擇左邊的窗口,后期需要安裝其它插件的話,也可以再到 jenkins 頁面安裝
在這里插入圖片描述
樓主這里選擇左邊 jenkins 推薦的一些插件,如圖上,正在安裝中…
Tips: 這個過程需要聯網!
在這里插入圖片描述
創建一個超級管理員用戶,信息請自行填寫。Tips: 后續登錄 jenkins需要使用到的登錄信息
在這里插入圖片描述訪問 jenkins 的路徑配置,如果無特殊要求,默認就好。
在這里插入圖片描述
jenkins 已經准備就緒,我們點 start using jenkins 就可以看到它的管理界面了
在這里插入圖片描述

安裝Maven插件

jenkins第一次創建 maven項目,需要先安裝maven插件,否則在創建項目的時候沒有 構建Maven項目 這一選項

在主頁面選擇 系統管理,再選擇 插件管理
在這里插入圖片描述
在輸入框中輸入:Maven Integration,勾選,並安裝它
在這里插入圖片描述

配置全局環境

在主頁面選擇 系統管理,再選擇 全局工具配置,我們進行,jdk、maven 的配置
以下配置的路徑全都是服務器該軟件的安裝路徑,請不要配置錯
在這里插入圖片描述
在這里插入圖片描述

創建一個maven項目

在主頁面選擇 New任務,開始創建一個項目,並在彈出的頁面方框中輸入你的項目名稱,輸入名稱后,我們選擇 “構建maven項目”,點 OK,進入下一步。
在這里插入圖片描述

簡單的說一下,如何讓當前項目與你 svn 或 git 上的代碼進行關聯
  1. 在下圖中選擇 Git 或 Subversion (我以svn為例,git差不多)
  2. Repository URL 中 輸入你的代碼地址
  3. Credentials 是拉這個代碼需要的賬號和密碼,點擊右邊的 Add可以添加(只需要輸入username 和 password 這兩項就行了)
    在這里插入圖片描述
這里不得不提一下 Build Triggers,有時候項目需要自動觸發,比如說提交代碼后觸發、定時觸發等等,都需要在這里配置。

這里留個todo,有時間我一定會補上!
在這里插入圖片描述

指定項目的構建信息
  1. Root POM 指定項目的 pom.xml 的路徑
  2. Goals and options 指定構建時所附加的參數
clean install -Pprod -Dmaven.test.skip=true
clean install 是maven的常用命令,不再解釋
-P 是指定啟動的環境,我所指定的是prod,表示加載 application-prod.yml 里面的配置(多配置前面博客中有提到)
-Dmaven.test.skip 指在編譯、打包時不執行測試用例,也不編譯測試用例類
  • 1
  • 2
  • 3
  • 4

在這里插入圖片描述

執行自定義的腳本

jenkins 把項目構建完成后,生成的 war/jar會在 /root/.jenkins/workspace/項目名/項目名/target/ 目錄下,我們利用命令將 war/jar 復制到指定目錄下,然后執行 sheel腳本進行發布
在這里插入圖片描述

BUILD_ID=DONTKILLME
cp /root/.jenkins/workspace/offline-app-order/offline-app-order/target/offline-app-order-1.0-SNAPSHOT.jar /usr/local/projects/offline-app-order/application-temp.jar
sh /usr/local/projects/offline-app-order/run-app.sh
  • 1
  • 2
  • 3
第一行:防止 jenkins 構建完成后殺掉 sheel 進程,導致自動部署失敗
第二行:將 jenkins 打的包復制到服務器的 指定位置,並重命名為 application-temp.jar
第三行:執行一個自己寫好的 sheel 腳本(此腳本完成殺進程,重啟進程的工作) - 該腳本放在本文的最后!
  • 1
  • 2
  • 3
重要:配置完成后,點擊 Save 將所有配置進行保存!

構建項目

上面的操作完成后,在主頁可以看到剛創建好的項目,我們點這個項目名稱,進入項目詳情
在這里插入圖片描述
點擊 立即構建 按鈕,開始構建項目
在這里插入圖片描述
構建開始時,可以在左下角看到條目,也可以點開條目,看構建日志

  • 紅色圓圈:構建失敗
  • 藍色圓圈:構建沒問題,腳本執行也沒問題,但是不保證項目能啟起來 (說不定有其它服務器問題)
    在這里插入圖片描述
查看構建日志(無論怎么構建失敗的,都可以進去看日志,日志里面會寫的很詳細)在這里插入圖片描述
最后,分享一個我服務器上的腳本(run-app.sh)
#!/bin/sbin
present_time=`date +%Y%m%d%H%M%S`
echo "current time: ${present_time}"

temp_jar_name=application-temp.jar
normal_jar_name=offline-app-order.jar

jar_path=/usr/local/projects/offline-app-order/
log_file=/usr/local/projects/offline-app-order/logs/application-run.log

LANG=UTF-8

echo "=============== publish =============="
echo "step 1: stop application"
pid=`ps -ef | grep ${normal_jar_name} | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   echo "kill -9 ${normal_jar_name}, pid is: ${pid}"
   kill -9 $pid
fi

echo "step 2: backup application"
#mv ${jar_path}/${normal_jar_name} ${jar_path}/${normal_jar_name}-${present_time}
rm -rf ${jar_path}/${normal_jar_name}

echo "step 3: replace application-temp.jar to application.jar"
mv ${jar_path}/${temp_jar_name} ${jar_path}/${normal_jar_name}

cd ${jar_path}
echo "step 4: chmod application"
if [ -f "${normal_jar_name}" ]
then 
   echo "chmod 777 to ${normal_jar_name}"
   chmod 777 ${normal_jar_name}
fi

cd ${jar_path}
echo "step 5: start application"
nohup java -jar ${normal_jar_name} > ${log_file} 2>&1 &
echo "publish is ok"
#echo "nohup java -jar ${normal_jar_name} > ${log_file} 2>&1 &"

 


免責聲明!

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



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