TeamCity On-Premises 2024.03 Help

Build Agent(构建代理)

TeamCity 构建代理 是一种软件,它侦听来自 TeamCity 服务器的命令并启动实际的构建过程。 它是独立于 TeamCity 服务器进行安装和配置的。 代理可以安装在与服务器相同的计算机上,也可以安装在不同的机器上(后者是出于服务器性能原因的首选设置);代理可以运行与 TeamCity 服务器相同的操作系统(OS),也可以运行不同的操作系统。

TeamCity 构建代理包含 两个进程

  • 代理启动器 —— 一个启动代理进程的 Java 进程。

  • 代理 — 构建代理的主要进程;作为代理启动器的子进程运行。

代理通常会检查源代码,下载其他构建的工件,并运行构建过程。 一个代理可以一次运行一个构建。 代理的数量基本上限制了并行构建的数量和运行构建进程的环境数量。
代理可以运行任何兼容的构建配置的构建。

TeamCity 服务器监控所有已连接的代理,并基于兼容性要求代理池、针对代理配置的构建配置限制以及这里描述的选择算法,将排队的构建分配给代理。

构建代理状态

在 TeamCity 中,构建代理可以具有以下状态:

状态

描述

已连接/未连接

如果代理已在 TeamCity 服务器上注册并响应服务器命令,那么它就被视为已连接,否则,它就是 断开连接 的。 此状态会自动确定。

授权/ 未授权

代理通过 Agents (代理)页面上的 Web 界面手动授权(除了由云集成启动计算机的代理)。 只有经过授权的构建代理才能运行构建。 在任何给定时间,授权代理的数量不能超过在服务器上输入的 代理许可证 的数量。 当代理未经授权时,许可证将被释放,可以对不同的构建代理进行授权。 购买额外的许可证,以扩展可以同时运行构建的代理数量。 当一个新的代理首次在服务器上注册时,它默认是未经授权的,需要手动授权才能运行构建。

如果构建代理安装并在与 TeamCity 构建服务器相同的计算机上运行,它将被自动授权。

启用/禁用(云代理的维护禁用)

代理是通过 web UI 手动启用/禁用的。 TeamCity 服务器只将构建分发给已启用的代理。

代理禁用并不影响(停止)当前在代理上运行的构建。

禁用了的 代理仍可以执行构建,当构建被分配给一个特殊的代理时(例如,通过 触发自定义构建)。 此功能通常用于临时从 构建网格 中移除代理,以便调查特定于代理的问题。

所有连接到服务器的代理必须具有唯一的代理名称。

只有具备某些角色的用户才能管理代理。 请查看 这篇文章 以获取更多信息。

对于构建代理配置,请参考 此部分

代理升级

当需要时,TeamCity 代理将自动升级。 通常,发生这种情况是因为:

请注意,更新代理插件和在服务器升级后接收新文件可能会触发代理重启,以使更改生效。 如果代理在具有足够权限的用户帐户下运行,所有重启将自动发生,无需您的输入。

代理优先级

TeamCity 采用先进的代理选择逻辑,考虑因素如 CPU 计数、过去的构建性能、代理源(云或本地)等,以便将您的构建与最适合该工作的代理进行匹配。

您可以通过修改其整数 teamcity.agent.priority 属性来手动降低或提高任何代理的优先级。 此属性接受在 -10000 ~ 10000 范围内的值,其默认值为 0。 对于 AWS托管的云代理,您可以在云镜像设置页面上设置此属性:

为 EC2 云镜像设置镜像优先级

对于其他云镜像和裸机代理,请在 <TeamCity_Agent_Home>/conf/buildAgent.properties 文件中添加以下行:

teamcity.agent.priority=54
最后修改日期: 16日 7月 2024年