您的Jenkins執行器是否不足,或者在等待排隊的 Jenkins Windows 任務時卡住了?如果是的話,您需要設置更多的Jenkins代理。
在本教程中,您將學習如何添加一個 Jenkins 代理 Windows 节点,以支持軟件構建環境中不斷增長的資源需求!
先決條件
要按照本文,您需要以下內容。
- 安裝了Jenkins控制器的工作安裝版本等於或大於2.176.1,在本文中,控制器被稱為主節點。
- 任何受支持的 Windows OS 安裝,將被稱為 Jenkins 代理節點。
什麼是 Jenkins 代理和 Jenkins 代理控制器?
A core component of Jenkins is the job. Jobs are instances of build automation that run a defined set of tasks. Supporting different job configurations requires an automation system to distribute build jobs among different nodes, which is simply an environment containing a Jenkins agent or controller.
Jenkins 代理在各種不同的環境上運行,如物理機器、虛擬機器、Kubernetes 集群和Docker 鏡像。Jenkins 代理是一個可執行文件,駐留在節點上,由控制器負責運行一個任務。
管理不同的 Jenkins 代理是代理控制器的工作,也被称为主节点。在单个 Jenkins 节点配置中,控制器还可以充当 Jenkins 代理并运行构建任务。随着环境变得更加复杂,这种配置变得有限。
防止控制器主节点运行任务
在添加额外的 Jenkins 代理之前,您必须先将主节点从构建代理池中移除。从此池中移除主节点可确保控制器有足够的资源来协调构建任务。以下是防止主节点运行任务所需的设置步骤。
- 通过浏览器访问 Jenkins 用户界面。在本教程中,Jenkins 控制器使用
192.168.x.x:8080
地址。

2. 一旦进入 Jenkins 仪表板,点击 管理 Jenkins 链接。

3. 接下来,从 系统配置 部分内点击 配置系统 链接。

4. 滚动页面找到设置,执行器数量,并将值设置为 0
。该设置会强制主节点或控制器不运行任何构建任务。

0
.5. 在同一页上找到 Jenkins URL。将 URL 更改为浏览器中使用的 IP 地址和端口,而不是 localhost:8080
。
代理節點在與控制器通信時,如果設置不正確,可能會嘗試使用
localhost
而不是正確的IP。配置正確的IP地址後,您可以避免未來的代理通信問題!

6. 點擊保存以確認並應用更新的設置。
設置入站代理的TCP端口
為了告知Windows Jenkins代理節點如何最佳地啟動作業服務並與控制器通信,您必須配置TCP入站端口設置。定義TCP入站端口設置可以確保Jenkins代理知道如何通過網絡連接到Jenkins控制器。
- 再次從Jenkins儀表板導航到管理Jenkins配置頁面。
2. 如下圖所示,點擊配置全局安全性部分以查找TCP端口選項。

3. 捲動到代理部分並找到入站代理的TCP端口。將選項從禁用更改為隨機。使用隨機設置,Jenkins會選擇一個隨機可用的端口號,並在代理首次連接到Jenkins HTTP端口時共享該端口號。

4. 最後,點擊保存按鈕以應用更新的設置。
在Jenkins控制器上創建新的Jenkins代理節點
配置好所有適當的設置後,現在是時候創建您的新 Jenkins 代理節點了。在此之前,在 Windows 節點上創建工作目錄。在 Windows 節點上,創建目錄 C:\Jenkins。
一旦工作目錄被創建,請按照以下步驟配置您的新節點!
- 從 Jenkins 控制台,點擊管理節點和雲端連結。

2. 點擊左側菜單中的新節點連結。僅有控制器作為代理時,節點列表一開始只會顯示主節點。

3. 輸入一個節點名稱,本教程中為MyWindowsAgent1
,但您可以為您的環境使用更合適的標識,然後選擇永久代理選項。有額外代理時,您也可以看到複製現有節點選項。最後,點擊確定按鈕。

4. 使用以下設置配置新代理。綠色突顯的選項是默認值。
- # of executors:通常對應於代理核心數。以下是一個方便的 PowerShell 片段,用於找到這個值。
- Remote Work Directory: C:\Jenkins
- Launch method:通過將代理連接到主節點來啟動代理。

在最近的一篇來自Cloudbees.com的解決方案文章中,版本2.176.1之後的代理程式啟動選項已經更改。現在,“透過Web Start啟動代理程式”變成了“通過連接到主機啟動代理程式”。
5. 點擊保存按鈕,並導航到節點列表屏幕,新的Windows Jenkins代理節點將顯示出來。
6. 點擊新節點的名稱MyWindowsAgent1
以檢索代理程式安裝鏈接。

7. 現在打開遠程桌面(RDP)連接到將托管Jenkins代理程式的Windows節點。
8. 通過瀏覽器在即將成為Windows代理的機器上導航到http://controllerip:port/computer/nodename
。
9. 點擊啟動按鈕下載代理程式安裝程序並開始Jenkins代理程式安裝。

下一步
有很多利用新代理的方法。從在Jenkins中運行PowerShell腳本到在Docker中運行Jenkins,您會發現有很多自動化您的構建環境的方法!