如何设置新的Jenkins构建代理

你的 Jenkins 执行器是否不足,或者你的 Jenkins Windows 作业被排队等待?如果是这样,你需要设置更多的 Jenkins 代理

在本教程中,你将学习如何添加一个 Jenkins 代理 Windows 节点,以支持软件构建环境中不断增长的资源需求!

先决条件

要跟着本文进行,你需要以下内容。

  • 安装了一个 Jenkins 控制器 的工作环境,版本大于或等于 2.176.1,在本文中,控制器将被称为主节点。
  • 任何支持的 Windows 操作系统安装,这将被称为 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. 滚动页面找到设置 # of executors,并将值设置为 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*
  • 远程工作目录C:\Jenkins
  • 启动方法:通过将代理连接到主机来启动代理。
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. 通过浏览器导航到http://controllerip:port/computer/nodename,在即将成为Windows代理的机器上。

9. 点击启动按钮下载代理安装程序并开始Jenkins代理安装

Utilize the instructions and links to install the agent.

下一步

有许多方法可以利用您新发现的代理。无论是运行Jenkins中的PowerShell脚本还是运行Docker中的Jenkins,您会发现有许多自动化构建环境的方式!

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