【注】本文譯自:
https://www.edureka.co/blog/jenkins-tutorial/
本文將重點介紹 Jenkins 架構和 Jenkins 構建管道,並向您展示如何在 Jenkins 中建立一個構建。
現在是瞭解 Jenkins 架構的正確時機。
Jenkins 架構
讓我們修改一下我在上一個部落格中向您解釋的獨立 Jenkins 架構,下圖描繪了相同的架構。
單臺 Jenkins 伺服器不足以滿足某些要求,例如:
- 有時您可能需要幾個不同的環境來測試您的構建。單個 Jenkins 伺服器無法完成此操作。
- 如果定期構建更大、更重的專案,則單個 Jenkins 伺服器將無法簡單地處理整個負載。
為了滿足上述需求,引入了 Jenkins 分散式架構。
Jenkins 分散式架構
Jenkins使用主從架構管理分散式構建。在這種架構中,主站和從站通過 TCP / IP 協議進行通訊。
Jenkins 主節點
您的主要 Jenkins 伺服器是主節點。主節點的工作是處理:
- 排程構建作業。
- 將構建分派給實際執行的從節點。
- 監視從節點(可能根據需要使它們聯機和離線)。
- 記錄並顯示構建結果。
- Jenkins 的主節點也可以直接執行構建作業。
Jenkins 從節點
從節點是在遠端計算機上執行的 Java 可執行檔案。以下是 Jenkins 從節點的特點:
- 接收來自 Jenkins 主接點的請求。
- 從節點可以在各種作業系統上執行。
- 從節點的工作就是按照命令執行,包括執行主節點分配的構建作業。
- 您可以將專案配置為始終在特定的從節點或特定型別的從節點上執行,或者僅讓 Jenkins 選擇下一個可用的從節點。
下圖是不言自明的。它由一個 Jenkins 主節點管理三個 Jenkins 從節點。
現在,讓我們看一個示例,其中 Jenkins 用於在不同的環境中進行測試,例如:Ubuntu、MAC、Windows等。
如下圖所示:
上圖中執行以下功能: - Jenkins 會定期檢查 Git 儲存庫中是否有任何原始碼更改。
- 每個構建都需要不同的測試環境,這對於單個Jenkins伺服器是不可能的。為了在不同的環境中執行測試,Jenkins 使用了各種從節點,如圖所示。
- Jenkins 主節點要求這些從節點執行測試並生成測試報告。
Jenkins 構建管道
它用於瞭解 Jenkins 當前正在執行的任務。通常,幾位開發人員會同時進行幾項不同的更改,因此瞭解哪些更改正在測試中,哪些更改正在排隊中或哪些構建已損壞是很有用的。這是管道出現的地方。Jenkins 管道為您提供了測試範圍的概述。在構建管道中,整個構建被細分為多個部分,例如單元測試、驗收測試、打包、報告和部署階段。管道階段可以序列或並行執行,如果一個階段成功,它將自動移至下一個階段(因此具有“管道”名稱的相關性)。下圖顯示了多個構建管道的外觀。
希望你已經理解了理論概念。現在,讓我們來體驗一下動手的樂趣。
我將在 Jenkins 建立一個新作業,這是一個自由式專案。然而,還有 3 個可用選項。讓我們看一下 Jenkins 中可用的構建作業的型別。
自由式專案:
自由式構建作業是通用構建作業,它提供了最大的靈活性。自由式構建作業是最靈活和可配置的選項,可用於任何型別的專案。設定相對簡單,我們在此處配置的許多選項也出現在其他構建作業中。
多配置作業:
“多配置專案”(也稱為“矩陣專案”)允許您在不同的環境上執行相同的構建作業。它用於在不同環境、不同資料庫甚至不同構建機器上測試應用程式。
監視外部作業:
通過“監視外部作業”構建作業,您可以關注非互動式流程,例如 cron 作業。
Maven 專案:
“ maven2/3 專案”是專門適應 Maven 專案的構建工作。Jenkins 理解 Maven pom 檔案和專案結構,並且可以使用從 pom 檔案中收集的資訊來減少設定專案所需的工作。
使用 Jenkins 建立一個構建
第 1 步:在 Jenkins 介面主頁中,選擇 New Item。
第 2 步:輸入名稱並選擇 Freestyle project。
第 3 步: 在下一頁中,您可以指定作業配置。您會很快發現,建立新專案時有許多可用設定。在這個配置頁面上,您還可以選擇新增構建步驟來執行額外的操作,例如執行指令碼。我將執行一個 shell 指令碼。
這將為您提供一個文字框,您可以在其中新增所需的任何命令。您可以使用指令碼來執行各種任務,例如伺服器維護、版本控制、讀取系統設定等。我將使用它來執行簡單的指令碼。
第 4 步:儲存專案,您將進入專案概述頁面。在這裡,您可以檢視有關專案的資訊,包括其構建歷史。
第 5 步:點選左側的 立即構建 開始構建。
第 6 步:要檢視更多資訊,請在構建歷史記錄區域中單擊該構建,隨後您將進入帶有構建資訊概述的頁面。
第 7 步:控制檯輸出 連結頁面對於詳細檢查作業結果特別有用。
第 8 步:如果您回到 Jenkins 主頁面,您將看到所有專案的概述及其資訊,包括狀態。
生成狀態通過兩種方式表示,一種是天氣圖示,另一種是彩色球。 天氣圖示特別有用,因為它可以在一張影像中顯示多個版本的記錄。
如上圖所示,太陽代表著我的所有建造都是成功的。 球的顏色為我們提供了該特定構建的狀態,在上圖中,球的顏色為藍色,這表示該特定構建成功了。