Jenkins 快速指南



Jenkins - 概述

為什麼選擇 Jenkins?

Jenkins 是一款允許**持續整合**的軟體。Jenkins 將安裝在進行中心構建的伺服器上。下圖演示了 Jenkins 工作原理的一個非常簡單的流程。

Why Jenkins

除了 Jenkins,有時您還會看到與**Hudson**相關的聯想。Hudson 是一個非常流行的開源基於 Java 的持續整合工具,由 Sun Microsystems 開發,後來被 Oracle 收購。在 Oracle 收購 Sun 之後,從 Hudson 原始碼建立了一個分支,從而引入了 Jenkins。

什麼是持續整合?

持續整合是一種開發實踐,要求開發人員定期將程式碼整合到共享儲存庫中。這個概念旨在消除在構建生命週期中後期發現問題的難題。持續整合要求開發人員頻繁構建。常見的做法是,每當發生程式碼提交時,都應該觸發構建。

系統要求

JDK JDK 1.5 或更高版本
記憶體 2 GB RAM(推薦)
磁碟空間 無最低要求。請注意,由於所有構建都將儲存在 Jenkins 機器上,因此必須確保有足夠的磁碟空間用於構建儲存。
作業系統版本 Jenkins 可以安裝在 Windows、Ubuntu/Debian、Red Hat/Fedora/CentOS、Mac OS X、openSUSE、FReeBSD、OpenBSD、Gentoo 上。
Java 容器 WAR 檔案可以在任何支援 Servlet 2.4/JSP 2.0 或更高版本的容器中執行。(例如 Tomcat 5)。

Jenkins - 安裝

下載 Jenkins

Jenkins 的官方網站是 Jenkins。如果您點選給定的連結,您將獲得 Jenkins 官方網站的首頁,如下所示。

Download Jenkins1

預設情況下,最新版本和長期支援版本將可用下載。過去的版本也可以下載。點選下載部分中的“長期支援版本”選項卡。

Download Jenkins2

點選“較舊但穩定的版本”連結下載 Jenkins war 檔案。

啟動 Jenkins

開啟命令提示符。在命令提示符下,瀏覽到 jenkins.war 檔案所在的目錄。執行以下命令:

D:\>Java –jar Jenkins.war

命令執行後,將執行各種任務,其中一項是透過名為 winstone 的嵌入式 Web 伺服器提取 war 檔案。

D:\>Java –jar Jenkins.war
Running from: D:\jenkins.war
Webroot: $user.home/ .jenkins
Sep 29, 2015 4:10:46 PM winstone.Logger logInternal
INFO: Beginning extraction from war file

處理完成後沒有重大錯誤,命令提示符的輸出中將出現以下行:

INFO: Jenkins is fully up and running

訪問 Jenkins

Jenkins 執行後,您可以透過以下連結訪問 Jenkins:https://:8080

此連結將顯示 Jenkins 儀表板。

Accessing Jenkins

Jenkins – Tomcat 設定

Jenkins Tomcat 設定必須滿足以下先決條件。

步驟 1:驗證 Java 安裝

要驗證 Java 安裝,請開啟控制檯並執行以下 java 命令。

作業系統 任務 命令
Windows 開啟命令控制檯 >java –version
Linux 開啟命令終端 $java –version

如果 Java 已正確安裝在您的系統上,則您應該獲得以下輸出之一,具體取決於您正在使用的平臺。

作業系統 輸出
Windows

Java version "1.7.0_60"

Java(TM) SE Runtime Environment (build 1.7.0_60-b19)

Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)

Linux

java version "1.7.0_25"

OpenJDK Runtime Environment (rhel-2.3.10.4.el6_4-x86_64)

OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)

在繼續本教程之前,我們假設本教程的讀者已在其系統上安裝了 Java 1.7.0_60。

如果您沒有 Java JDK,您可以從以下連結下載:Oracle

步驟 2:驗證 Java 安裝

設定 JAVA_HOME 環境變數以指向 Java 安裝在您計算機上的基本目錄位置。例如:

作業系統 輸出
Windows 將環境變數 JAVA_HOME 設定為 C:\ProgramFiles\java\jdk1.7.0_60
Linux export JAVA_HOME=/usr/local/java-current

將 Java 編譯器位置的完整路徑附加到系統路徑。

作業系統 輸出
Windows 將字串;C:\Program Files\Java\jdk1.7.0_60\bin 附加到系統變數 PATH 的末尾。
Linux export PATH=$PATH:$JAVA_HOME/bin/

如上所述,從命令提示符驗證命令 java-version。

步驟 3:下載 Tomcat

Tomcat 的官方網站是 Tomcat。如果您點選給定的連結,您將獲得 Tomcat 官方網站的首頁,如下所示。

Download Tomcat1

瀏覽到連結 https://tomcat.apache.org/download-70.cgi 以獲取 Tomcat 的下載。

Download Tomcat2

轉到“二進位制分發”部分。下載 32 位 Windows zip 檔案。

然後解壓縮下載的 zip 檔案的內容。

步驟 4:Jenkins 和 Tomcat 設定

複製從上一節下載的 Jenkis.war 檔案,並將其複製到 Tomcat 資料夾中的 webapps 資料夾。

現在開啟命令提示符。在命令提示符下,瀏覽到 tomcat7 資料夾所在目錄。瀏覽到此資料夾中的 bin 目錄,然後執行 start.bat 檔案。

E:\Apps\tomcat7\bin>startup.bat

處理完成後沒有重大錯誤,命令提示符的輸出中將出現以下行:

INFO: Server startup in 1302 ms

開啟瀏覽器並訪問以下連結:https://:8080/jenkins。Jenkins 將在 Tomcat 上執行。

Jenkins and Tomcat Setup

Jenkins - Git 設定

對於此練習,您必須確保從安裝 Jenkins 的機器上存在網際網路連線。在您的 Jenkins 儀表板(主螢幕)中,點選左側的“管理 Jenkins”選項。

Jenkins Git Setup

在下一個螢幕中,點選“管理外掛”選項。

Manage Jenkins

在下一個螢幕中,點選“可用”選項卡。此選項卡將列出可供下載的外掛。在“篩選”選項卡中,鍵入“Git 外掛”。

Available tab

然後將過濾列表。選中 Git 外掛選項,然後點選“無需重啟安裝”按鈕。

Git Plugin

然後安裝將開始,螢幕將重新整理以顯示下載狀態。

Installing Plugins Upgrades

所有安裝完成後,透過在瀏覽器中發出以下命令重新啟動 Jenkins:https://:8080/jenkins/restart

Jenkins 重新啟動後,在配置作業時,Git 將作為選項可用。要驗證,請點選 Jenkins 選單選項中的“新建 Item”。然後為作業輸入名稱,在本例中,輸入的名稱為“Demo”。選擇“自由風格專案”作為專案型別。點選“確定”按鈕。

New Item Jenkins

在下一個螢幕中,如果您瀏覽到“原始碼管理”部分,您現在將看到“Git”作為選項。

Demo Config Jenkins

Jenkins – Maven 設定

步驟 1:下載和設定 Maven

Maven 的官方網站是 Apache Maven。如果您點選給定的連結,您將獲得 Maven 官方網站的首頁,如下所示。

Maven Setup

瀏覽到該站點時,轉到“檔案”部分並下載到 Binary.zip 檔案的連結。

Maven Download

下載檔案後,將檔案提取到相關的應用程式資料夾。為此,maven 檔案將放置在 E:\Apps\apache-maven-3.3.3 中。

步驟 2:設定 Jenkins 和 Maven

在 Jenkins 儀表板(主螢幕)中,從左側選單點選“管理 Jenkins”。

Setting Maven Jenkins

然後,點選右側的“系統配置”。

Manage Jenkins1 Manage Jenkins2

在“系統配置”螢幕中,向下滾動到您看到 Maven 部分,然後點選“新增 Maven”按鈕。

Add Maven

取消選中“自動安裝”選項。

新增任何設定名稱和 MAVEN_HOME 的位置。

然後,點選螢幕末尾的“儲存”按鈕。

Configure Maven

您現在可以使用“Maven 專案”選項建立一個作業。在 Jenkins 儀表板中,點選“新建 Item”選項。

Jenkins Dashboard1 Jenkins Dashboard2

Jenkins - 配置

您可能在之前的練習中多次看到過,我們需要在 Jenkins 中配置選項。以下是 Jenkins 中各種配置選項。

因此,您可以透過從左側選單點選“管理 Jenkins”選項來獲取 Jenkins 的各種配置選項。

Jenkins Configuration1

然後將顯示以下螢幕:

Jenkins Configuration2

點選“系統配置”。下面討論了一些可以執行的 Jenkins 配置設定。

Jenkins 主目錄

Jenkins 需要一些磁碟空間來執行構建和儲存存檔。您可以從 Jenkins 的配置螢幕檢查此位置。預設情況下,此設定為 ~/.jenkins,此位置最初將儲存在您的使用者配置檔案位置。在適當的環境中,您需要將此位置更改為足夠的位置以儲存所有相關的構建和存檔。您可以透過以下方式執行此操作:

  • 在啟動 servlet 容器之前,將“JENKINS_HOME”環境變數設定為新的主目錄。

  • 將“JENKINS_HOME”系統屬性設定為 servlet 容器。

  • 將 JNDI 環境條目“JENKINS_HOME”設定為新目錄。

以下示例將使用設定“JENKINS_HOME”環境變數的第一個選項。

首先建立一個新資料夾 E:\Apps\Jenkins。將所有內容從現有的 ~/.jenkins 複製到此新目錄。

設定 JENKINS_HOME 環境變數以指向 Java 安裝在您計算機上的基本目錄位置。例如:

作業系統 輸出
Windows 將環境變數 JENKINS_HOME 設定為您想要的位置。例如,您可以將其設定為 E:\Apps\Jenkins
Linux export JENKINS_HOME =/usr/local/Jenkins 或您想要的位置。

在 Jenkins 儀表板中,從左側選單點選“管理 Jenkins”。然後點選右側的“系統配置”。

在主目錄中,您現在將看到已配置的新目錄。

Jenkins Home Directory

執行器數量

這指的是可以在 Jenkins 機器上同時執行的作業總數。這可以根據需要更改。有時建議將此數字保持與機器上的 CPU 數量相同,以獲得更好的效能。

環境變數

這用於新增將應用於所有作業的自定義環境變數。這些是鍵值對,可以在需要時在構建中訪問和使用。

Jenkins URL

預設情況下,Jenkins URL 指向 localhost。如果您為您的機器設定了域名,請將其設定為域名,否則使用機器的 IP 覆蓋 localhost。這將有助於設定從站以及使用電子郵件傳送連結,因為您可以使用環境變數 JENKINS_URL 直接訪問 Jenkins URL,該變數可以訪問為 ${JENKINS_URL}。

電子郵件通知

在電子郵件通知區域,您可以配置用於傳送電子郵件的 SMTP 設定。Jenkins 需要此設定才能連線到 SMTP 郵件伺服器並將電子郵件傳送到收件人列表。

Jenkins - 管理

要管理 Jenkins,請從左側選單點選“管理 Jenkins”選項。

因此,您可以透過從左側選單點選“管理 Jenkins”選項來獲取 Jenkins 的各種配置選項。

Jenkins Management1

然後將顯示以下螢幕:

Jenkins Management2

一些管理選項如下:

系統配置

在這裡可以管理構建中使用的各種工具的路徑,例如 JDK、Ant 和 Maven 的版本,以及安全選項、電子郵件伺服器和其他系統範圍的配置詳細資訊。安裝外掛後,Jenkins 將在外掛安裝後動態新增所需的配置欄位。

從磁碟重新載入配置

Jenkins 將其所有系統和構建作業配置詳細資訊儲存為 XML 檔案,這些檔案儲存在 Jenkins 主目錄中。所有構建歷史記錄也儲存在這裡。如果您要將構建作業從一個 Jenkins 例項遷移到另一個例項,或存檔舊的構建作業,則需要向 Jenkins 的構建目錄新增或刪除相應的構建作業目錄。您無需為此使 Jenkins 離線——您可以簡單地使用“從磁碟重新載入配置”選項直接重新載入 Jenkins 系統和構建作業配置。

管理外掛

在這裡,您可以直接從不同的原始碼管理工具(例如 Git、Mercurial 或 ClearCase)安裝各種第三方外掛,到程式碼質量和程式碼覆蓋率指標報告。可以透過“管理外掛”螢幕安裝、更新和刪除外掛。

Manage Plugins

系統資訊

此螢幕顯示當前所有 Java 系統屬性和系統環境變數的列表。在這裡,您可以準確檢查 Jenkins 執行的 Java 版本、執行的使用者等等。

以下螢幕截圖顯示了此部分中提供的一些名稱值資訊。

System Information

系統日誌

系統日誌螢幕是即時檢視 Jenkins 日誌檔案的便捷方式。同樣,此螢幕的主要用途是進行故障排除。

負載統計

此頁面顯示關於 Jenkins 例項有多繁忙的圖形資料,包括併發構建的數量和構建佇列的長度,這可以瞭解您的構建需要等待多長時間才能執行。這些統計資料可以很好地瞭解從基礎架構的角度來看是否需要額外的容量或額外的構建節點。

指令碼控制檯

此螢幕允許您在伺服器上執行 Groovy 指令碼。它對於高階故障排除非常有用,因為它需要強大的內部 Jenkins 架構知識。

管理節點

Jenkins 能夠處理並行和分散式構建。在此螢幕中,您可以配置所需的構建數量。Jenkins 同時執行,如果您使用分散式構建,則設定構建節點。構建節點是 Jenkins 可以用來執行其構建的另一臺機器。

準備關機

如果需要關閉 Jenkins 或 Jenkins 執行的伺服器,最好不要在執行構建時這樣做。要乾淨地關閉 Jenkins,您可以使用“準備關機”連結,這可以防止啟動任何新的構建。最終,當所有當前構建完成後,就可以乾淨地關閉 Jenkins 了。

Jenkins - 設定構建任務

在本練習中,我們將在 Jenkins 中建立一個作業,該作業獲取一個簡單的 HelloWorld 應用程式,構建並執行 Java 程式。

步驟 1 - 轉到 Jenkins 儀表板並單擊“新建 Item”

Setup Build Jobs

步驟 2 - 在下一個螢幕中,輸入 Item 名稱,在本例中我們將其命名為 Helloworld。選擇“自由風格專案”選項

Helloworld

步驟 3 - 將出現以下螢幕,您可以在其中指定作業的詳細資訊。

Helloworld Config

步驟 4 - 我們需要指定需要構建的檔案的位置。在本例中,我們假設已設定了一個本地 git 儲存庫 (E:\Program),其中包含一個 'HelloWorld.java' 檔案。因此,向下滾動並單擊 Git 選項,然後輸入本地 git 儲存庫的 URL。

注意 - 如果您的儲存庫託管在 Github 上,您也可以在此處輸入該儲存庫的 url。除此之外,您還需要單擊憑據的“新增”按鈕,為 github 儲存庫新增使用者名稱和密碼,以便可以從遠端儲存庫獲取程式碼。

Git Repository

步驟 5 - 現在轉到“構建”部分,然後單擊“新增構建步驟”→“執行 Windows 批處理命令”

Execute Windows Batch Command

步驟 6 - 在命令視窗中,輸入以下命令,然後單擊“儲存”按鈕。

Javac HelloWorld.java
Java HelloWorld

Save

步驟 7 - 儲存後,您可以單擊“立即構建”選項以檢視是否已成功定義作業。

Build Now

步驟 8 - 安排構建後,它將執行。“構建歷史記錄”部分顯示正在進行構建。

Build History

步驟 9 - 構建完成後,將顯示構建的狀態,說明構建是否成功。在本例中,以下構建已成功執行。單擊構建歷史記錄中的 #1 以顯示構建的詳細資訊。

Details

步驟 10 - 單擊“控制檯輸出”連結以檢視構建的詳細資訊

Console Output1 Console Output2

除了上面顯示的步驟之外,還有很多方法可以建立構建作業,可用的選項很多,這就是使 Jenkins 成為如此出色的持續部署工具的原因。

Jenkins - 單元測試

Jenkins 提供了 Junit 的開箱即用功能,併為其他技術的單元測試提供了一系列外掛,例如 .Net 單元測試的 MSTest。如果您訪問連結 https://wiki.jenkins-ci.org/display/JENKINS/xUnit+Plugin,它將列出可用的單元測試外掛。

Unit Testing Unit Testing Plugins

Jenkins 中 Junit 測試示例

以下示例將考慮

  • 基於 Junit 的簡單的 HelloWorldTest 類。
  • 在 Jenkins 中使用 Ant 作為構建工具來相應地構建類。

步驟 1 - 轉到 Jenkins 儀表板,單擊現有的 HelloWorld 專案,然後選擇“配置”選項

Junit Test Example

步驟 2 - 瀏覽到“新增構建步驟”部分,然後選擇“呼叫 Ant”選項。

Invoke Ant

步驟 3 - 單擊“高階”按鈕。

Advanced Button

步驟 4 - 在“構建檔案”部分,輸入 build.xml 檔案的位置。

XML Location

步驟 5 - 接下來,單擊“新增構建後操作”選項,然後選擇“釋出 Junit 測試結果報告”選項

Publish Junit Report

步驟 6 - 在“測試報告 XML”中,輸入如下所示的位置。確保 Reports 是在 HelloWorld 專案工作區中建立的資料夾。“*.xml”基本上告訴 Jenkins 獲取執行 Junit 測試用例時生成的 result xml 檔案。然後可以將這些 xml 檔案轉換為稍後可以檢視的報告。

完成後,單擊最後的“儲存”選項。

Report Test XML

步驟 7 - 儲存後,您可以單擊“立即構建”選項。

構建完成後,將顯示構建的狀態,說明構建是否成功。在構建輸出資訊中,您現在將注意到一個名為“測試結果”的附加部分。在本例中,我們輸入了一個失敗的測試用例,以便結果失敗,僅作為示例。

Build Option

您可以轉到“控制檯輸出”以檢視更多資訊。但更有趣的是,如果您單擊“測試結果”,您現在將看到測試結果的詳細分解。

Test Result

Jenkins - 自動化測試

持續整合的基本原則之一是構建應該是可驗證的。您必須能夠客觀地確定特定構建是否已準備好繼續構建過程的下一階段,最方便的方法是使用自動化測試。如果沒有適當的自動化測試,您會發現自己不得不保留許多構建工件並手動測試它們,這幾乎不符合持續整合的精神。以下示例顯示瞭如何使用 Selenium 執行自動化 Web 測試。

步驟 1 - 轉到“管理外掛”。

Automated Testing

步驟 2 - 找到 Hudson Selenium 外掛並選擇安裝。重新啟動 Jenkins 例項。

Hudson Selenium Testing

步驟 3 - 轉到“配置系統”。

Configure System

步驟 4 - 配置 selenium 伺服器 jar 並單擊“儲存”按鈕。

Configure Selenium Server

注意 - selenium jar 檔案可以從以下位置下載 SeleniumHQ

單擊 Selenium 獨立伺服器的下載連結。

Download Selenium Standalone Server

步驟 5 - 返回儀表板,然後單擊 HelloWorld 專案的“配置”選項。

Configure

步驟 6 - 單擊“新增構建步驟”,然後選擇“SeleniumHQ htmlSuite Run”選項

SeleniumHQ htmlSuite Run

步驟 7 - 新增 selenium 測試的必要詳細資訊。這裡的 suiteFile 是使用 Selenium IDE 生成的 TestSuite。單擊“儲存”並執行構建。現在,構建後操作將啟動 selenium 驅動程式並執行 html 測試。

Selenium Driver HTML test

Jenkins - 通知

Jenkins 帶有一個開箱即用的功能,可以為構建專案新增電子郵件通知。

步驟 1 - 配置 SMTP 伺服器。轉到“管理 Jenkins”→“配置系統”。轉到“電子郵件通知”部分,然後輸入所需的 SMTP 伺服器和使用者電子郵件字尾詳細資訊。

SMTP Server

步驟 2 - 在 Jenkins 專案中配置收件人 - 配置任何 Jenkins 構建專案時,最後可以新增收件人,這些收件人將收到不穩定或中斷構建的電子郵件通知。然後單擊“儲存”按鈕。

Configure Recipients

除了預設設定外,市場上還提供通知外掛。例如,來自 Tikal Knowledge 的通知外掛允許以 JSON 和 XML 格式傳送作業狀態通知。此外掛允許配置端點,如下所示。

Tikal Knowledge Plugin

以下是每個選項的詳細資訊:

  • “格式” - 這是通知有效負載格式,可以是 JSON 或 XML。

  • “協議” - 用於傳送通知訊息的協議,HTTP、TCP 或 UDP。

  • “事件” - 觸發通知的作業事件:作業已啟動、作業已完成、作業已完成或所有事件(預設選項)。

  • “URL” - 用於傳送通知的 URL。它採用以下形式:http://host(對於 HTTP 協議)和 "host:port"(對於 TCP 和 UDP 協議)。

  • “超時” - 傳送通知請求的超時時間(毫秒),預設為 30 秒。

Jenkins - 報告

如前面部分所示,有很多報告外掛可用,最簡單的就是 Junit 測試的報告。

在任何作業的“構建後操作”中,您可以定義要建立的報告。構建完成後,“測試結果”選項將可用,以便進一步深入分析。

Jenkins Reporting

Jenkins - 程式碼分析

Jenkins 有許多程式碼分析外掛。可以在以下網址找到各種外掛:https://wiki.jenkins-ci.org/display/JENKINS/Static+Code+Analysis+Plugins

Jenkins Code Analysis

此外掛為靜態程式碼分析外掛提供實用程式。Jenkins 可以解析來自各種程式碼分析工具(如 CheckStyle、FindBugs、PMD 等)的結果檔案。對於每個相應的程式碼分析工具,都需要安裝 Jenkins 中的外掛。

此外,還提供了附加外掛 靜態分析收集器,它可以將這些外掛的單個結果組合到單個趨勢圖和檢視中。

外掛可以提供以下資訊:

  • 作業中的警告總數
  • 顯示構建的新警告和已修復的警告
  • 趨勢報告,顯示每個構建的警告數量
  • 按模組、包、類別或型別查詢的警告概述
  • 詳細報告找到的警告,可以選擇按嚴重性(或新警告和已修復警告)進行篩選

Jenkins - 分散式構建

如果存在定期構建的較大、較重的專案,有時需要許多構建機器。在中央機器上執行所有這些構建可能不是最佳選擇。在這種情況下,可以配置其他 Jenkins 機器作為從屬機器,以減輕主 Jenkins 伺服器的負載。

有時您可能還需要幾個不同的環境來測試您的構建。在這種情況下,使用從屬機器來表示每個所需的環境幾乎是必須的。

從屬機器是從主伺服器解除安裝構建專案並進行設定的計算機,一旦設定完成,任務分配就相當自動化。確切的委派行為取決於每個專案的配置;一些專案可能選擇“堅持”使用特定機器進行構建,而其他專案則可以選擇在從屬機器之間自由漫遊。

由於每個從屬機器都執行一個名為“從屬代理”的單獨程式,因此無需在從屬機器上安裝完整的 Jenkins(軟體包或編譯後的二進位制檔案)。啟動從屬代理的方法有很多種,但最終從屬代理和 Jenkins 主伺服器需要建立雙向通訊鏈路(例如 TCP/IP 套接字)才能執行。

要在 Jenkins 中設定從屬機器/節點,請按照以下步驟操作。

步驟 1 - 轉到“管理 Jenkins”部分,向下滾動到“管理節點”部分。

Manage Nodes

步驟 2 - 點選“新建節點”。

New Nodes

步驟 3 - 為節點命名,選擇“啞從屬”選項,然後點選“確定”。

Dumb Slave

步驟 4 - 輸入從屬機器的詳細資訊。在下面的示例中,我們認為從屬機器是 Windows 機器,因此選擇“讓 Jenkins 將此 Windows 從屬機器作為 Windows 服務控制”作為啟動方法。我們還需要新增從屬節點的必要詳細資訊,例如節點名稱和節點機器的登入憑據。點選“儲存”按鈕。輸入名稱為“New_Slave”的標籤可用於配置使用此從屬機器的作業。

Slave Machine1

完成上述步驟後,新的節點機器最初將處於離線狀態,但如果先前螢幕中的所有設定都正確輸入,則將聯機。如果需要,可以隨時使節點從屬機器離線。

Slave Machine2

Jenkins - 自動化部署

有很多外掛可用,這些外掛可用於在成功構建後將構建檔案傳輸到相應的應用程式/Web 伺服器。“部署到容器外掛”就是一個示例。要使用此外掛,請按照以下步驟操作。

步驟 1 - 轉到“管理 Jenkins”→“管理外掛”。轉到“可用”部分,找到外掛“部署到容器外掛”,然後安裝該外掛。重新啟動 Jenkins 伺服器。

Deploy to Container Plugin

此外掛獲取 war/ear 檔案,並在構建結束時將其部署到正在執行的遠端應用程式伺服器。

Tomcat 4.x/5.x/6.x/7.x

JBoss 3.x/4.x

Glassfish 2.x/3.x

步驟 2 - 轉到您的構建專案並單擊“配置”選項。選擇“將 war/ear 部署到容器”選項。

Deploy war ear to Container

步驟 3 - 在“將 war/ear 部署到容器”部分中,輸入需要將檔案部署到的伺服器的必要詳細資訊,然後單擊“儲存”按鈕。這些步驟現在將確保在成功構建後將必要的檔案部署到必要的容器。

Demo Config

Jenkins - 指標和趨勢

Jenkins 中有各種外掛可用於展示一段時間內執行的構建的指標。這些指標有助於瞭解您的構建以及它們隨著時間的推移失敗/透過的頻率。例如,讓我們看看“構建歷史指標外掛”。

安裝此外掛後,它將計算所有構建的以下指標:

  • 平均故障時間 (MTTF)
  • 平均恢復時間 (MTTR)
  • 構建時間的標準差

步驟 1 - 轉到 Jenkins 儀表板並單擊“管理 Jenkins”。

Welcome to Jenkins

步驟 2 - 轉到“管理外掛”選項。

Metrics Trends Manage Plugins1

步驟 3 - 轉到“可用”選項卡,搜尋外掛“構建歷史指標外掛”,然後選擇“無需重啟安裝”。

Install Without Restart1

步驟 4 - 將顯示以下螢幕以確認外掛已成功安裝。重新啟動 Jenkins 例項。

Installation Success Confirmation1

轉到您的作業頁面時,您將看到一個包含計算指標的表格。指標顯示過去 7 天、過去 30 天和所有時間的資料。

Metrics Table

要檢視 Jenkins 中的總體趨勢,可以使用外掛從構建和 Jenkins 內部收集資訊並以圖形格式顯示它們。“Hudson 全域性構建統計資訊外掛”就是這樣一個外掛的示例。因此,讓我們逐步完成此操作。

步驟 1 - 轉到 Jenkins 儀表板並單擊“管理 Jenkins”。

Hudson Global Build Stats

步驟 2 - 轉到“管理外掛”選項。

Metrics Trends Manage Plugins2

步驟 3 - 轉到“可用”選項卡,搜尋外掛“Hudson 全域性構建統計資訊外掛”,然後選擇“無需重啟安裝”。

Install Without Restart2

步驟 4 - 將顯示以下螢幕以確認外掛已成功安裝。重新啟動 Jenkins 例項。

Installation Success Confirmation2

要檢視全域性統計資訊,請按照步驟 5 到步驟 8 操作。

步驟 5 - 轉到 Jenkins 儀表板並單擊“管理 Jenkins”。在“管理 Jenkins”螢幕中,向下滾動,您現在將看到一個名為“全域性構建統計資訊”的選項。單擊此連結。

Global Build Stats

步驟 6 - 單擊“初始化統計資訊”按鈕。此操作將收集已執行構建的所有現有記錄,並可以根據這些結果建立圖表。

Initialize Stats

步驟 7 - 初始化資料後,就可以建立新圖表了。單擊“建立新圖表”連結。

Create New Chart

步驟 8 - 將彈出一個視窗,用於輸入新圖表詳細資訊的相關資訊。輸入以下必填資訊:

  • 標題 - 任何標題資訊,此示例中給定為“演示”
  • 圖表寬度 - 800
  • 圖表高度 - 600
  • 圖表時間刻度 - 每日
  • 圖表時間長度 - 30 天

其餘資訊可以保持不變。輸入資訊後,單擊“建立新圖表”。

Adding New Chart

您現在將看到顯示構建隨時間推移趨勢的圖表。

Displaying Trends

如果單擊圖表中的任何部分,它將提供作業及其構建詳細資訊的深入分析。

Global Build Search

Jenkins - 伺服器維護

以下是您將執行的一些基本活動,其中一些是 Jenkins 伺服器維護的最佳實踐。

URL 選項

將以下命令附加到 Jenkins 例項 URL 時,將對 Jenkins 例項執行相關操作。

https://:8080/jenkins/exit - 關閉 Jenkins

https://:8080/jenkins/restart - 重新啟動 Jenkins

https://:8080/jenkins/reload - 重新載入配置

備份 Jenkins 主目錄

Jenkins 主目錄只不過是驅動器上 Jenkins 儲存所有作業、構建等資訊的位置。單擊“管理 Jenkins”→“配置系統”即可檢視主目錄的位置。

Backup Jenkins Home

在具有最多可用磁碟空間的分割槽上設定 Jenkins - 由於 Jenkins 將獲取為定義的各種作業提供的原始碼並進行持續構建,因此始終確保 Jenkins 設定在具有足夠硬碟空間的驅動器上。如果硬碟空間不足,則 Jenkins 例項上的所有構建都將開始失敗。

另一個最佳實踐是編寫 cron 作業或維護任務,這些作業或任務可以執行清理操作,以避免 Jenkins 設定所在的磁碟變滿。

Jenkins - 持續部署

Jenkins 為提供持續部署和交付提供了良好的支援。如果您檢視任何軟體開發到部署的流程,它將如下所示。

Jenkins Continuous Deployment

持續部署的主要部分是確保上述整個過程自動化。Jenkins 透過各種外掛實現了所有這一切,其中一個是在前面的課程中看到的“部署到容器外掛”。

Continuous Deployment Container Plugin

有一些外掛實際上可以提供持續部署過程的圖形表示。但首先讓我們在 Jenkins 中建立另一個專案,以便我們能夠最好地瞭解它的工作原理。

讓我們建立一個模擬 QA 階段並對 Helloworld 應用程式進行測試的簡單專案。

步驟 1 - 轉到 Jenkins 儀表板並單擊“新建專案”。選擇“自由風格專案”,並將專案名稱輸入為“QA”。單擊“確定”按鈕以建立專案。

Freestyle Project

步驟 2 - 在此示例中,我們保持簡單,僅使用此專案來執行 Helloworld 應用程式的測試程式。

Helloworld Application

因此,我們的 QA 專案現已設定完成。您可以進行構建以檢視其是否正確構建。

QA Project Build

步驟 3 - 現在轉到您的 Helloworld 專案並單擊“配置”選項。

Project Configure Option

步驟 4 - 在專案配置中,選擇“新增構建後操作”,然後選擇“構建其他專案”。

Add Post Build Action

步驟 5 - 在“要構建的專案”部分中,輸入 QA 作為要構建的專案名稱。您可以將選項保留為“僅在構建穩定時觸發”的預設值。單擊“儲存”按鈕。

Trigger Stable Build

步驟 6 - 構建 Helloworld 專案。現在,如果您檢視控制檯輸出,您還將看到在成功構建 Helloworld 專案後,QA 專案的構建也將發生。

QA Project Console Project

步驟 7 - 現在讓我們安裝交付流水線外掛。轉到“管理 Jenkins”→“管理外掛”。在“可用”選項卡中,搜尋“交付流水線外掛”。單擊“無需重啟安裝”。完成後,重新啟動 Jenkins 例項。

Restart Jenkins Instance

步驟 8 - 要檢視交付流水線執行情況,請在 Jenkins 儀表板中單擊“全部”選項卡旁邊的選項卡中的“+”符號。

Delivery Pipeline

步驟 9 - 輸入檢視名稱的任何名稱,然後選擇“交付流水線檢視”選項。

Delivery Pipeline View

步驟 10 - 在下一個螢幕中,您可以保留預設選項。可以更改以下設定:

  • 確保選中“顯示靜態分析結果”選項。
  • 確保選中“顯示總構建時間”選項。
  • 對於初始作業 - 輸入 Helloworld 專案作為應構建的第一個作業。
  • 輸入流水線的任何名稱。
  • 單擊“確定”按鈕。
Change Setting

您現在將看到整個交付流水線的清晰檢視,並且能夠看到整個流水線中每個專案的狀態。

Each Project Status

另一個著名的外掛是構建流水線外掛。讓我們來看看這個。

步驟 1 − 前往“管理 Jenkins” → “管理外掛”。在“可用”選項卡中,搜尋“Build Pipeline Plugin”。單擊“無需重啟安裝”。完成後,重啟 Jenkins 例項。

Build Pipeline Plugin

步驟 2 − 要檢視構建管道的執行情況,在 Jenkins 儀表板中,單擊“全部”選項卡旁邊的 + 符號。

See Build Pipeline Action

步驟 3 − 輸入檢視名稱,然後選擇“構建管道檢視”選項。

Build Pipeline View

步驟 4 − 接受預設設定,只需在“選定的初始作業”中輸入 HelloWorld 專案的名稱即可。單擊“確定”按鈕。

Accept Default Settings

您現在將看到整個交付流水線的清晰檢視,並且能夠看到整個流水線中每個專案的狀態。

Entire Pipeline Status

Jenkins - 外掛管理

要獲取 Jenkins 中所有可用外掛的列表,可以訪問以下連結 − https://wiki.jenkins-ci.org/display/JENKINS/Plugins

Jenkins Managing Plugins

我們已經看到了許多安裝外掛的示例,讓我們看看一些關於外掛的其他維護任務。

解除安裝外掛

要解除安裝外掛,請前往“管理 Jenkins” → “管理外掛”。單擊“已安裝”選項卡。某些外掛將具有“解除安裝”選項。您可以單擊這些按鈕來解除安裝外掛。解除安裝後,請確保重啟 Jenkins 例項。

Uninstalling Plugins

安裝其他版本的外掛

有時可能需要安裝舊版本的外掛,在這種情況下,您可以從 Jenkins 網站上的相關外掛頁面下載該外掛。然後,您可以使用上傳選項手動上傳外掛。

Installing another Version Plugin

Jenkins - 安全

在 Jenkins 中,您可以設定使用者及其在 Jenkins 例項上的相關許可權。預設情況下,您不希望每個人都能在 Jenkins 中定義作業或執行其他管理任務。因此,Jenkins 可以實施安全配置。

要配置 Jenkins 中的安全設定,請按照以下步驟操作。

步驟 1 − 單擊“管理 Jenkins”,然後選擇“配置全域性安全”選項。

Configure Global Security

步驟 2 − 單擊“啟用安全”選項。例如,假設我們希望 Jenkins 維護其自身的使用者資訊資料庫,因此在“安全域”中,選擇“Jenkins 自身使用者資料庫”選項。

預設情況下,您希望中央管理員在系統中定義使用者,因此請確保取消選中“允許使用者註冊”選項。目前您可以保留其餘設定不變,然後單擊“儲存”按鈕。

Enable Security Option

步驟 3 − 系統將提示您新增您的第一個使用者。例如,我們正在為系統設定一個管理員使用者。

Admin User

步驟 4 − 現在是時候在系統中設定您的使用者了。現在,當您轉到“管理 Jenkins”並向下滾動時,您將看到“管理使用者”選項。單擊此選項。

Manage User

步驟 5 − 與定義管理員使用者一樣,開始為系統建立其他使用者。例如,我們只建立一個名為“user”的使用者。

User

步驟 6 − 現在是時候設定您的授權了,基本上是誰訪問什麼。轉到“管理 Jenkins” → “配置全域性安全”。

現在在“授權”部分,單擊“基於矩陣的安全”

Authorization Section

步驟 7 − 如果您在使用者組列表中沒有看到該使用者,請輸入使用者名稱並將其新增到列表中。然後為使用者授予相應的許可權。

定義相關授權後,單擊“儲存”按鈕。

您的 Jenkins 安全設定現已完成。

注意 − 對於 Windows AD 身份驗證,必須將 Active Directory 外掛新增到 Jenkins。

Jenkins - 備份外掛

Jenkins 有一個備份外掛,可用於備份與 Jenkins 相關的關鍵配置設定。請按照以下步驟進行備份。

步驟 1 − 單擊“管理 Jenkins”,然後選擇“管理外掛”選項。

Manage Backup Plugin

步驟 2 − 在“可用”選項卡中,搜尋“備份外掛”。單擊“無需重啟安裝”。完成後,重啟 Jenkins 例項。

Backup Plugin1 Backup Plugin2

步驟 3 − 現在,當您轉到“管理 Jenkins”並向下滾動時,您將看到“備份管理器”選項。單擊此選項。

Backup Manager

步驟 4 − 單擊“設定”。

Backup Manager Setup

步驟 5 − 在這裡,主要需要定義的是備份目錄。確保它位於與 Jenkins 例項設定所在的驅動器不同的另一個驅動器上。單擊“儲存”按鈕。

Backup Config Files

步驟 6 − 在“備份管理器”螢幕上單擊“備份 Hudson 配置”以啟動備份。

Backup Hudson Configuration

下一個螢幕將顯示備份狀態。

Backup Status

要從備份中恢復,請轉到“備份管理器”螢幕,單擊“恢復 Hudson 配置”。

Restore Hudson Configuration

將顯示備份列表,單擊相應的備份,然後單擊“啟動恢復”以開始恢復備份。

Backup Restoration

Jenkins - 遠端測試

例如 Selenium 測試之類的 Web 測試可以透過主從和 Selenium 套件外掛安裝在遠端從屬機器上執行。以下步驟說明如何使用此配置執行遠端測試。

步驟 1 − 確保您的主從配置已就緒。轉到您的主 Jenkins 伺服器。轉到“管理 Jenkins” → “管理節點”。

Jenkins Remote Testing

在我們的節點列表中,DXBMEM30 標籤是從屬機器。在此示例中,主從機器都是 Windows 機器。

Node List

步驟 2 − 單擊 DXBMEM30 從屬機器的“配置”。

Configure Slave Machine

步驟 3 − 確保啟動方法設定為“透過 Java Web Start 啟動從屬代理”。

Launch Slave Agents

步驟 4 − 現在轉到您的從屬機器,然後從那裡開啟瀏覽器例項到您的 Jenkins 主例項。然後轉到“管理 Jenkins” → “管理節點”。轉到 DXBMEM30 並單擊

Remote Testing Manage Nodes

步驟 5 − 單擊 DXBMEM30 例項。

DXBMEM30 Instance

步驟 6 − 向下滾動,您將看到“啟動”選項,這是啟動“Java Web Start”的選項。

Java Web Start

步驟 7 − 您將看到一個安全警告。單擊接受複選框,然後單擊執行。

Security Warning

您現在將看到一個 Jenkins 從屬視窗開啟並已連線。

Jenkins Slave Window Connected

步驟 8 − 配置在從屬伺服器上執行的測試。在這裡,您必須確保建立的作業專門用於執行 Selenium 測試。

在作業配置中,確保選中“限制此專案可在何處執行”選項,並在標籤表示式中輸入從屬節點的名稱。

Configuration

步驟 9 − 確保您的作業的 Selenium 部分已配置。您必須確保 Sample.html 檔案和 selenium-server.jar 檔案也存在於從屬機器上。

Configure Selenium

完成上述所有步驟後,單擊“構建”,此專案將按預期在從屬機器上執行 Selenium 測試。

廣告