Jenkins 持續內建環境搭建
官方文檔:https://jenkins.io/zh/doc/
1、CentOS 7.4 安裝過程
首先,從官網https://jenkins.io/zh/download/ 下載下傳
Red Had/Fedora/CentOS
版本的Jenkins,這裡以 jenkins-2.183-1.1.noarch.rpm 為例。
然後,由于jenkins運作需要JDK,是以根據官方要求,要先安裝
JDK1.8
。
最後,安裝
Jenkins-2.183
,流程如下:
1)、上傳安裝包到 CentOS 7.4的系統環境中
2)、執行 rpm 包安裝指令 (#其中i表示安裝,v表示顯示安裝過程,h表示顯示進度):
sudo rpm -ivh jenkins-2.183-1.1.noarch.rpm
執行結果如圖所示:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZwpmL5ATOyADMxATMwEzNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
3)、啟動 Jenkins
sudo service jenkins start
執行結果如下:
4)、根據啟動報錯的提醒資訊,發現jenkins啟動時無法找到jdk,故需要手動調整java配置,打開 配置檔案
vi /etc/rc.d/init.d/jenkins
,并在
candidates=""
屬性中添加目前系統的jdk安裝目錄
注意:如果不知道本機jdk安裝目錄,可以通過
whereis java
進行查找。
5)、重新啟動jenkins,這次可以正常啟動成功,可通過
ip:port
模式初始化配置。
以下清單記錄jenkins的 指令 和 目錄結構
常用指令如下:
sudo service jenkins start #啟動
sudo service jenkins stop #停止
sudo service jenkins restart #重新開機
常用目錄如下
/etc/init.d/jenkins #啟動檔案
/etc/sysconfig/jenkins #配置檔案
/usr/lib/jenkins/jenkins.war #war包存放路徑
/var/cache/jenkins #war包解壓的緩存目錄
/var/lib/jenkins #jenkins 主目錄
/var/log/jenkins #jenkins 日志目錄
注意:
/var/lib/jenkins/workspace/
目錄為jenkins 任務的根目錄,具體項目會根據任務目錄結構建構目錄。例如:有一個
tysite
檔案夾下的
tysite-spark
,需要從git上拉取項目,那麼任務執行後,将會把git項目下載下傳到
/var/lib/jenkins/workspace/tysite/tysite-spark
,而該任務中的操作目錄皆以此目錄開始。
2、Jenkins 基礎配置
1)、Jenkins 預設的 通路端口為 8080,采用
ip:port
模式,通過浏覽器通路jenkins。
2)、浏覽器首次打開時,jenkins會進入自動配置模式,配置完成後打開解鎖頁面
3)、根據頁面提醒,通路提示檔案,擷取秘鑰,錄入後點選【繼續】按鈕。
4)、繼續加載後,系統進入插件安裝界面,我們選擇
安裝推薦的插件
。
5)、完成後自動進入管理者賬号建立界面。
6)、設定完成後,提示使用者設定配置目錄,預設即可,點選完成按鈕
3、Jenkins 插件安裝
1)、通過域名打開Jenkins管理平台。
2)、點選
Manager Jenkins
>
Manager Plugins
,安裝業務插件
3)、在插件管理頁面,搜尋需要安裝的插件并進行安裝
4)、本文示範簡單的基于Git的持續內建
java
項目和
angular
項目,須安裝如下插件
(1)安裝 Maven Integration plugin
(2)安裝 Publish Over SSH(遠端釋出)
(3)安裝 JDK Parameter Plugin
(4)安裝 NodeJs
注意: 插件安裝完成後,需要
重新開機
jenkins
5)、Publish over SSH 伺服器配置
主菜單中選擇
系統管理
>
系統設定
子產品,找到
Publish over SSH
子產品,如下圖所示方式設定 SSH伺服器連接配接。
6)、工具配置
根據持續內建需要,設定所需工具,本示例設定
JDK1.8
、
Gradle
和
NodeJs
。
首先需要在Jenkins所在伺服器安裝JDK1.8、Gradle和NodeJs,并确定安裝目錄。
然後通過
系統管理
>
全局工具配置
子產品,找到
JDK
、
Gradle
、
NodeJs
并進行配置。(預設是個按鈕)
如下圖所示方式配置 JDK
如下圖所示方式配置Gradle
如下圖所示方式配置NodeJs
7)、憑據配置
在使用Git擷取項目時,可以采用秘鑰模式,這裡可以通過
憑據配置
完成對公用賬号的配置。點選
憑據
>
系統
,添加自己的
域
,然後在
域
下
添加憑據
。
3、配置任務
1)、通過
Jenkins
>
建立任務
按鈕,打開任務建立建立。
2)、通常我們在項目中,需要建構一組任務給項目組成員使用,為了授權友善,可以選擇将這一組任務放在同一個檔案下。
先建立任務檔案夾,如下圖所示:
然後,再在任務檔案夾中建立具體任務。
3)、這裡以
自由風格
的任務為例,從
碼雲
上拉取代碼,然後 打包 釋出。
- 源碼管理部分,如下圖所示方式配置 git 拉取資訊。
Jenkins 持續內建環境搭建 -
建構觸發器,用于設定任務排程模式,如采用手動觸發則無需配置此功能。
下圖為定時建構;也可以采用gitlab 鈎子觸發排程。
Jenkins 持續內建環境搭建 - 構模組化塊,選擇
模式,可以根據業務需要添加指令,如調用執行shell
的任務進行項目打包gradle
Jenkins 持續內建環境搭建 注意:需要在jenkins中配置Jenkins 持續內建環境搭建
工具,否則直接使用gradle
指令無效。./gradlew
-
打包釋出
通過
Publish over SSH
插件,将打包好的檔案 發送到 指定部署目錄,并執行部署指令。
這個SSH操作,可以在
或建構
子產品中添加,選擇建構後操作
模式,如下圖所示設定推送目錄及推送後的操作。Send Build artifacts over SSH
說明:Jenkins 持續內建環境搭建 - ssh插件的主要功能,是将
配置的檔案,傳輸到Source files
伺服器的Name
目錄,然後執行Remote directory
視窗中的指令。Exec command
-
指令視窗,可以根據需要,執行多條指令,每條指令占用一行。如 清理、解壓、啟動程式等。Exec command
- ssh插件的主要功能,是将
4)、配置完成後,傳回任務界面,點選[立即建構]按鈕,執行以上配置的任務
4)、點選
Build History
中的曆史記錄 辨別(如
#1
),進入任務建構詳情界面,可以通過
控制台輸出
功能,檢視建構過程,用于分析建構過程中的錯誤資訊。
5)、建構成功後,傳回任務界面,點選[工作空間]按鈕,檢視項目工作空間。可用于對打包後代碼的獨立下載下傳。
4、DOCKER 模式安裝說明
1)、下載下傳docker 鏡像
docker pull jenkins/jenkins:2.183-centos
2)、建立docker 容器
docker run --name jenkins -d -p 8080:8080 -p 50000:50000 jenkins/jenkins:2.183-centos
3、浏覽器通路
IP:8080
網址,後續配置與
rpm
安裝模式相同
4、
docker 模式使用時,須額外注意外部伺服器的通路權限問題
5、要點總結
1)、首次啟動通常會出現
找不到java指令
的情況,修改
/etc/rc.d/init.d/jenkins
檔案
candidates=""
屬性,添加本機的JDK目錄。
2)、Jenkins預設啟動的端口為
8080
,可根據具體情況,修改
/etc/sysconfig/jenkins
檔案的
JENKINS_PORT="8080"
屬性變更端口。
3)、rpm 方式安裝的jenkins ,預設的任務工作目錄為
/var/lib/jenkins/workspace/
。
4)、jenkins 工具類插件,使用時須先在伺服器安裝軟體(如jdk、gradle等),然後在
全局工具配置
中設定。
5)、jenkins通過
SSH
插件執行腳本時,無法自行擷取到
使用者配置的環境變量
,須在執行腳本前,調用
source /etc/profile
指令使環境變量生效。(非CentOS系統請自行查找相關指令)