Jenkins 安裝後,所有設定檔和目錄都儲存在使用者家目錄下的 .jenkins 資料夾中,也就是 JENKINS_HOME。其中,config.xml 存放 Jenkins 全域設定,jobs 資料夾則包含所有專案的工作目錄,每個工作目錄下有 config.xml、latest、builds 等子目錄和檔案,記錄建置歷程、設定和結果。設定 Java 路徑時,可修改 jenkins.xml 中的 <executable> 標籤。啟動 Jenkins 可使用 .war 檔案或 Windows 服務,設定埠則需修改 jenkins.xml 或 /etc/default/jenkins。啟動後,即可透過瀏覽器登入 Jenkins 進行後續設定。
Jenkins 的設定檔和目錄結構
Jenkins 的設定檔和目錄結構是瞭解 Jenkins 安裝和組態的基礎。當您安裝 Jenkins 時,系統會在使用者家目錄($user.home)下的 .jenkins 目錄中建立一系列的設定檔和目錄。
Jenkins 的安裝目錄也被稱為 JENKINS_HOME。以下是 JENKINS_HOME 目錄結構的概覽:
config.xml:Jenkins 根組態檔*.xml:其他站點範圍的組態檔userContent:存放將在 Jenkins 伺服器下提供的檔案fingerprint:存放指紋記錄nodes:從屬機組態plugins:存放外掛secrets:存放當遷移憑證到其他伺服器時需要的秘密workspace:版本控制系統的工作目錄[JOBNAME]:每個工作的子目錄
瞭解這些設定檔和目錄結構可以幫助您更好地管理和組態您的 Jenkins 伺服器。
目錄結構圖
圖表翻譯:
上述 Plantuml 圖表顯示了 Jenkins 的目錄結構。JENKINS_HOME 是根目錄,包含了多個子目錄和檔案。每個子目錄和檔案都有其特定的用途,例如 config.xml 是 Jenkins 的根組態檔,而 userContent 目錄存放了將在 Jenkins 伺服器下提供的檔案。瞭解這個目錄結構可以幫助您更好地管理和組態您的 Jenkins 伺服器。
Jenkins 設定檔解析
Jenkins 的設定檔 jenkins.xml 位於 JENKINS_HOME 目錄中,包含了重要的設定引數。其中,<Service> 標籤包含了 Java 執行檔的位置,這是由玄貓使用的。
Java 路徑設定
玄貓會使用環境變數 PATH 中指定的 Java 版本。如需變更 Jenkins 使用的 Java 版本,可以在 <service> 標籤中加入 <executable> 標籤,指定所需 Java 安裝目錄中的 java.exe 全路徑。
Jenkins 工作目錄結構
jobs:工作目錄[JOBNAME]:每個工作的子目錄config.xml:工作組態檔latest:指向最後一次成功建置的符號連結builds:建置目錄[BUILD_ID]:每個建置的目錄build.xml:建置結果摘要log:日誌檔changelog.xml:變更記錄檔
Jenkins.xml 設定
<Service>
<executable>指定Java路徑</executable>
</Service>
圖表翻譯:
此圖示
圖表翻譯:
此圖表描述了 Jenkins 的設定檔 jenkins.xml 中的 Service 標籤,該標籤包含了 Java 執行檔的路徑設定。透過指定 Java 的全路徑,可以變更 Jenkins 使用的 Java 版本。
組態Jenkins
在上一章中,我們已經瞭解瞭如何在不同的平臺上安裝Jenkins,並討論了重要的組態檔案和目錄結構。現在,是時候組態Jenkins以便於實際使用。
本章將討論如何啟動Jenkins使用.WAR檔案,以及透過Windows服務(如果Jenkins已經安裝為服務)。您將學習如何登入Jenkins並組態全域性設定和不同工具的路徑,這些工具將用於Jenkins的工作和管道中。
組態全域性設定和路徑
本文將解釋如何組態不同的工具/軟體,您將使用它們與Jenkins一起工作,例如Maven和JDK。
登入Jenkins
在開始組態Jenkins之前,我們將解釋如何啟動Jenkins伺服器並登入Jenkins。
啟動Jenkins伺服器
您可以透過.WAR檔案或Windows服務啟動Jenkins伺服器。如果您已經安裝了Jenkins作為服務,您需要啟動Jenkins服務。讓我們看看在Windows機器上啟動Jenkins伺服器的兩種方法:
- 使用
.WAR檔案啟動Jenkins伺服器(本文中使用版本2.289):在命令提示符中執行以下命令:
java -jar <.war檔案路徑> –httpListenAddress=<機器IP地址> –httpPort=<未被佔用的埠>
執行此命令後,您必須等待直到Jenkins伺服器完全啟動並執行。
* 使用Windows服務啟動Jenkins伺服器:前往開始選單,輸入「Services」,然後選擇「Services」選項,這將開啟「Services」視窗。右鍵單擊Jenkins服務條目,然後單擊「啟動」(如果「啟動」選項被停用,這意味著Jenkins服務已經在您的機器上執行)。單擊「啟動」後,Jenkins服務將啟動。
一旦您單擊「開始」選單,Jenkins服務將在localhost:8080上啟動伺服器。如果您想在不同的IP地址和埠(而不是8080)上啟動伺服器,請開啟`$JENKINS_HOME\jenkins.xml`檔案。`$JENKINS_HOME`參考的是Jenkins安裝目錄,在我的機器上,Jenkins安裝路徑是`C:\magicuser\.jenkins`。在`<arguments>`標籤中新增`--httpListenAddress=<您的機器IP地址>`和`--httpPort=<所需埠號>`,如圖4-1所示。
#### 內容解密:
上述過程解釋瞭如何啟動Jenkins伺服器使用`.WAR`檔案或Windows服務。使用`.WAR`檔案啟動Jenkins伺服器需要執行特定的命令,而使用Windows服務啟動則需要啟動Jenkins服務。瞭解如何啟動Jenkins伺服器是組態和使用Jenkins的關鍵步驟。
#### 圖表翻譯:
此圖表展示了啟動Jenkins伺服器的兩種方法:使用`.WAR`檔案和使用Windows服務。圖表從「啟動Jenkins伺服器」開始,分支到兩個選項:使用`.WAR`檔案和使用Windows服務。使用`.WAR`檔案需要執行特定的命令,然後等待伺服器啟動。使用Windows服務需要啟動Jenkins服務,然後伺服器就會啟動。這個圖表幫助使用者瞭解啟動Jenkins伺服器的不同方法和步驟。
## 組態Jenkins
組態Jenkins是使用Jenkins的重要一步。以下將介紹如何組態Jenkins。
### 啟動Jenkins服務
要啟動Jenkins服務,可以使用以下命令:
```bash
sudo systemctl start jenkins
如果Jenkins服務無法啟動,可能是因為埠8080已被佔用。可以編輯 /etc/default/jenkins 檔案,將 HTTP_PORT=8080 行替換為 HTTP_PORT=<您的期望埠號>,然後重新啟動Jenkins服務。
檢查Jenkins服務狀態
可以使用以下命令檢查Jenkins服務狀態:
sudo systemctl status jenkins
開啟瀏覽器並登入
開啟瀏覽器,輸入Jenkins服務的URL,包括IP地址和埠號。輸入使用者名稱和密碼,然後點選登入按鈕。
內容解密:
上述命令和步驟是啟動Jenkins服務和登入Jenkins的基本過程。下面是詳細解說:
sudo systemctl start jenkins:啟動Jenkins服務。sudo systemctl status jenkins:檢查Jenkins服務狀態。HTTP_PORT=<您的期望埠號>:設定Jenkins服務的埠號。
Understanding the Configure System Options
Jenkins系統設定是組態Jenkins的重要部分。以下將介紹Jenkins系統設定的基本概念。
圖表翻譯:
@startuml
skinparam backgroundColor #FEFEFE
title Jenkins設定檔目錄結構與組態解析
|開發者|
start
:提交程式碼;
:推送到 Git;
|CI 系統|
:觸發建置;
:執行單元測試;
:程式碼品質檢查;
if (測試通過?) then (是)
:建置容器映像;
:推送到 Registry;
else (否)
:通知開發者;
stop
endif
|CD 系統|
:部署到測試環境;
:執行整合測試;
if (驗證通過?) then (是)
:部署到生產環境;
:健康檢查;
:完成部署;
else (否)
:回滾變更;
endif
stop
@enduml
上述圖表展示了組態Jenkins的基本流程。下面是詳細解說:
- 啟動Jenkins服務:使用
sudo systemctl start jenkins命令啟動Jenkins服務。 - 檢查Jenkins服務狀態:使用
sudo systemctl status jenkins命令檢查Jenkins服務狀態。 - 開啟瀏覽器並登入:開啟瀏覽器,輸入Jenkins服務的URL,包括IP地址和埠號。輸入使用者名稱和密碼,然後點選登入按鈕。
- 組態Jenkins系統設定:組態Jenkins系統設定,包括設定Jenkins服務的埠號等。
從系統架構的視角來看,理解 Jenkins 的設定檔和目錄結構對於有效管理和維護 CI/CD 流程至關重要。本文深入剖析了 Jenkins 的核心組態 config.xml、工作區目錄結構以及關鍵設定檔如 jenkins.xml 中的 Java 路徑設定,並圖文並茂地闡述了目錄結構和設定流程。透過解析這些核心元件,可以發現 Jenkins 的高度可定製性和靈活性源於其模組化的設計和清晰的目錄結構。
然而,Jenkins 的靈活性也伴隨著一定的複雜性。對於初學者而言,掌握如此繁雜的目錄結構和組態選項可能具有一定的挑戰。此外,隨著外掛的增加,設定檔的管理也可能變得更加繁瑣。實務上,建議採用版本控制系統管理 Jenkins 的設定檔,並善用 Jenkins 的 Configuration as Code 外掛,以提升組態管理的效率和可追溯性。
展望未來,Jenkins 的組態管理將持續朝向自動化和程式碼化的方向發展。預計將會有更多工具和最佳實踐出現,以簡化 Jenkins 的組態流程並提升其可維護性。隨著雲原生技術的普及,Jenkins 也將更緊密地與 Kubernetes 等容器協調平臺整合,提供更彈性、可擴充套件的 CI/CD 解決方案。玄貓認為,深入理解 Jenkins 的底層架構和組態機制,對於構建高效、穩定的 CI/CD 流程至關重要,並能更好地應對未來技術發展的挑戰。對於追求 DevOps 最佳實踐的團隊而言,持續學習和精進 Jenkins 的組態管理技能將是不可或缺的。