四十九、Jenkins 持續集成

1、簡介

持續集成(Continuous Integration,CI|CD)是一種軟件開發實踐,對於提高軟件開發效率並保障軟件開發質量提供了理論基礎,持續集成意義如下:
持續集成中的任何一個環節都是自動完成的,無需太多的人工干預,有利於減少重複過程以節省時間、費用和工作量;
持續集成保障了每個時間點上團隊成員提交的代碼是能成功集成的。換言之,任何時間點都能第一時間發現軟件的集成問題,使任意時間發佈可部署的軟件成爲了可能;
持續集成還能利於軟件本身的發展趨勢,這點在需求不明確或是頻繁性變更的情景中尤其重要,持續集成的質量能幫助團隊進行有效決策,同時建立團隊對開發產品的信心。

Jenkins是基於Java開發的一種持續集成工具,官網地址爲:http://mirrors.jenkins-ci.org/ 。Jenkins持續集成組件如下:
自動構建過程JOB,JOB的功能主要是:獲取SVN/GIT源碼、自動編譯、自動打包、部署分發和自動測試等;
源代碼存儲庫,開發編寫代碼需上傳至SVN、GIT代碼庫中,供Jenkins來獲取;
Jenkins持續集成服務器,用於部署Jenkins UI、存放JOB工程、各種插件、編譯打包的數據等。

2、部署

第一步:安裝JDK及Tomcat

第二步:部署Jenkins

# 官網下載war包,或者使用清華大學源 https://mirror.tuna.tsinghua.edu.cn/jenkins/war/2.175/jenkins.war
[root@localhost ~]# cd /usr/local/apache-tomcat-8.0.39/webapps/
[root@localhost webapps]# rm -rf *
[root@localhost webapps]# mkdir -p /usr/local/apache-tomcat-8.0.39/webapps/ROOT/
[root@localhost webapps]# cd ROOT
[root@localhost ROOT]# wget http://updates.jenkins-ci.org/download/war/2.175/jenkins.war
# 解壓war包
[root@localhost ROOT]# /usr/java/jdk1.8.0_131/bin/jar xf jenkins.war 
[root@localhost ROOT]# rm -rf jenkins.war 
# 啓動tomcat
[root@localhost ROOT]# /usr/local/apache-tomcat-8.0.39/bin/startup.sh 

第三步:頁面配置

瀏覽器訪問 IP:PORT 初始化頁,由於機器配置、網絡等因素,該頁面初始化時間可能較長,需耐心等待。
在這裏插入圖片描述
cat /root/.jenkins/secrets/initialAdminPassword 得到密碼

在這裏插入圖片描述
安裝插件
在這裏插入圖片描述
安裝推薦的插件
在這裏插入圖片描述
選擇插件來安裝
在這裏插入圖片描述
注意:若出現類似以下問題,可手動下載相應的插件https://updates.jenkins-ci.org/download/plugins/cloudbees-folder/,然後放入
/usr/local/apache-tomcat-8.0.39/webapps/ROOT/WEB-INF/detached-plugins/ 文件夾下,重啓Tomcat即可。
在這裏插入圖片描述
創建用戶
在這裏插入圖片描述
實例配置
在這裏插入圖片描述
配置完成
在這裏插入圖片描述
登錄成功
在這裏插入圖片描述

3、Jenkins 平臺設置

點擊 系統管理–>全局工具配置,配置全局的JDK和MAVEN

配置JDK
在這裏插入圖片描述
配置maven
在這裏插入圖片描述

4、JOB 工程創建與配置

在這裏插入圖片描述
配置SVN
在這裏插入圖片描述
參數詳解:

Respository url 			    配置SVN倉庫地址;
Local module directory         存儲SVN源碼的路徑;
Ignore externals option		    忽略額外參數;
Check-out Strategy			    代碼檢出策略;
Repository browser			    倉庫瀏覽器,默認Auto;
add more locations 			源碼管理,允許下載多個地址的代碼;
Repository depth			    獲取SVN源碼的目錄深度,默認爲infinity;
empty: 不檢出項目的任何文件,files: 所有文件,immediates:目錄第一級,infinity:整個目錄所有文件。

配置maven
在這裏插入圖片描述
參數詳解:

mvn clean  		 	打包清理(刪除target目錄內容);	
mvn compile 	 	    編譯項目;
mvn package     	    打包發佈;
mvn package -Dmaven.test.skip=ture 打包時跳過測試。

通過以上步驟的配置步驟,即完成了JOB工程的創建。運行構建,Jenkins將從SVN倉庫獲取SVN代碼,然後通過Maven編譯、打包,並最終生成可以使用的war包。
在這裏插入圖片描述
編譯打包成功後執行shell進行部署、啓動服務
在這裏插入圖片描述
日誌輸出
在這裏插入圖片描述
歸檔文件,可通過http://ip:port/job/www.cluo.net/lastSuccessfulBuild/artifact/target/*.war進行文件下載
在這裏插入圖片描述

5、Jenkins 多實例

單臺Jenkins服務器可以滿足日常自動部署需求,如果每天更新發布多個WEB網站,Jenkins需要同時處理很多的任務,單臺Jenkins壓力就會很大,任務處理速度較慢。基於Jenkins分佈式,也就是多Slave方式可以緩解Jenkins服務器的壓力。
Jenkins多Slave原理是將原本在Jenkins Master端的構建項目分配給Slave端去執行,Jenkins Master分配任務時,Jenkins Master端通過SSH遠程Slave,在Slave端啓動slave.jar程序,通過Slave.jar實現對網站工程的構建編譯以及自動部署。步驟如下:
(1) 在Slave服務器,創建遠程執行Jenkins任務的用戶,名稱爲jenkins,Jenkins工作目錄/home/Jenkins,Jenkins Master免祕鑰登錄Slave服務器或者通過用戶名和密碼登錄Slave;
(2) Slave服務器安裝JAVA JDK版本,並將其軟件路徑加入系統環境變量。
(3) Jenkins master端平臺進行管理節點配置。
在這裏插入圖片描述

配置流程:

系統管理–> 節點管理–>新建節點
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

節點存在問題
在這裏插入圖片描述
點擊節點名稱 slave001
在這裏插入圖片描述
點擊啓動代理
在這裏插入圖片描述
在這裏插入圖片描述
至此,配置完成!

新建任務的時候,勾選“在必要的時候併發構建”,當多個任務排隊執行時slave節點就會參與執行。
在這裏插入圖片描述

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