設置新的 Jenkins 構建代理的步驟

您的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 代理之前,您必须先将主节点从构建代理池中移除。从此池中移除主节点可确保控制器有足够的资源来协调构建任务。以下是防止主节点运行任务所需的设置步骤。

  1. 通过浏览器访问 Jenkins 用户界面。在本教程中,Jenkins 控制器使用 192.168.x.x:8080 地址。
Logging into the Jenkins Dashboard.

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

Navigate to Manage Jenkins.

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

Navigate to Configure System.

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

Set the # of executors option to 0.

5. 在同一页上找到 Jenkins URL。将 URL 更改为浏览器中使用的 IP 地址和端口,而不是 localhost:8080

代理節點在與控制器通信時,如果設置不正確,可能會嘗試使用localhost而不是正確的IP。配置正確的IP地址後,您可以避免未來的代理通信問題!

Update the Jenkins URL to the proper IP address.

6. 點擊保存以確認並應用更新的設置。

設置入站代理的TCP端口

為了告知Windows Jenkins代理節點如何最佳地啟動作業服務並與控制器通信,您必須配置TCP入站端口設置。定義TCP入站端口設置可以確保Jenkins代理知道如何通過網絡連接到Jenkins控制器。

  1. 再次從Jenkins儀表板導航到管理Jenkins配置頁面。

2. 如下圖所示,點擊配置全局安全性部分以查找TCP端口選項。

Navigate to the Configure Global Security section.

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

Modify the TCP port for inbound agents setting to Random.

4. 最後,點擊保存按鈕以應用更新的設置。

在Jenkins控制器上創建新的Jenkins代理節點

配置好所有適當的設置後,現在是時候創建您的新 Jenkins 代理節點了。在此之前,在 Windows 節點上創建工作目錄。在 Windows 節點上,創建目錄 C:\Jenkins

一旦工作目錄被創建,請按照以下步驟配置您的新節點!

  1. 從 Jenkins 控制台,點擊管理節點和雲端連結。
Navigate to Manage Nodes and Clouds.

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

Add a New Node to Jenkins.

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

Enter the node name and type.

4. 使用以下設置配置新代理。綠色突顯的選項是默認值。

  • # of executors:通常對應於代理核心數。以下是一個方便的 PowerShell 片段,用於找到這個值。
Get-CimInstance -ClassName Win32_Processor | Select-Object -Property Number*
  • Remote Work DirectoryC:\Jenkins
  • Launch method:通過將代理連接到主節點來啟動代理。
Configure the new Jenkins Agent node.

在最近的一篇來自Cloudbees.com的解決方案文章中,版本2.176.1之後的代理程式啟動選項已經更改。現在,“透過Web Start啟動代理程式”變成了“通過連接到主機啟動代理程式”。

5. 點擊保存按鈕,並導航到節點列表屏幕,新的Windows Jenkins代理節點將顯示出來。

6. 點擊新節點的名稱MyWindowsAgent1以檢索代理程式安裝鏈接。

Navigate to the new Windows node.

7. 現在打開遠程桌面(RDP)連接到將托管Jenkins代理程式的Windows節點。

8. 通過瀏覽器在即將成為Windows代理的機器上導航到http://controllerip:port/computer/nodename

9. 點擊啟動按鈕下載代理程式安裝程序並開始Jenkins代理程式安裝

Utilize the instructions and links to install the agent.

下一步

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

Source:
https://adamtheautomator.com/jenkins-agent/