TeamCity On-Premises 2024.03 Help

在一台机器上安装多个代理

如果一台机器能够运行多个并发构建,您可以在其上安装多个 TeamCity 代理。 然而,我们建议在每个(虚拟)机器上运行一个代理,以最小化构建的交叉影响并使构建更加可预测。

TeamCity 对所有代理进行平等对待,无论它们是安装在同一台机器上,还是在不同的机器上。

在同一台机器上安装多个 TeamCity 构建代理时,请考虑以下几点:

  • 在这样的代理上运行的构建不应该因任何资源(公共磁盘目录、操作系统进程、操作系统临时目录)产生冲突。

  • 根据硬件和构建的具体情况,您可能会遇到构建性能下降的问题。 确保在多个构建同时运行时,不存在磁盘、内存或 CPU 瓶颈。

在安装了一个代理之后,您可以按照常规的安装程序(请参阅下面的 Windows 服务的异常)来安装额外的代理,但请确保:

  • 代理是通过使用不同的操作系统用户进行安装的,以便用户级资源(如 Maven / Gradle / NuGet 本地构件缓存)不会发生冲突。

  • 代理程序都安装在不同的目录中。

  • 代理具有独特的 workDirtempDir 目录,在 buildAgent.properties 文件中。

  • buildAgent.properties名称ownPort 属性的值是唯一的。

  • 没有构建配置指定到检出目录的绝对路径(或者,如果必要,您可以启用"清理检出"选项,并确保它们不并行运行)。

通常,对于新的代理安装,您只需将现有代理的目录复制到新的位置,除了其 tempworklogssystem 目录。 然后,用新的 名称ownPort 值修改 conf / buildAgent.properties。 清除(删除或移除值) authorizationToken 属性,并确保 workDirtempDir 是相对的 / 不与另一个代理冲突。

在 Windows 上配置第二个构建代理

如果您使用 Windows 安装程序并希望将代理作为服务运行,您需要执行额外的步骤,因为安装程序不支持在同一台机器上将第二个代理作为服务安装:现有的服务将被覆盖(参见 相关功能请求)。

您需要 手动 安装第二个代理(使用 .zip 代理分发)。 您可以使用 Windows 代理安装程序,且无需选择服务安装,但这样做您将失去对最初安装的代理的卸载选项。

在安装第二个代理程序后,按照此部分中的描述为其注册新服务。

在 macOS 上配置第二个构建代理

如果您想在 macOS 上启动多个构建代理,那么请按照以下的修改方式重复进行安装并启动构建代理的操作:

  • 在不同的目录中安装第二个构建代理。

  • conf / buildAgent.properties 中,指定一个不同的代理名称。

  • 不要运行 buildAgent/bin/mac.launchd.sh ;而是

    • $HOME/Library/LaunchAgents/jetbrains.teamcity.BuildAgent.plist 文件创建一份副本为 $HOME/Library/LaunchAgents/jetbrains.teamcity.BuildAgent2.plist

    • 编辑 $HOME/Library/LaunchAgents/jetbrains.teamcity.BuildAgent2.plist 文件并设置以下参数:

      • Label 参数传递给 jetbrains.teamcity.BuildAgent2

      • WorkingDirectory 参数设置为第二个构建代理主目录的正确路径

    • 使用命令 launchctl load $HOME/Library/LaunchAgents/jetbrains.teamcity.BuildAgent2.plist 启动第二个代理。

为了验证两个构建代理是否正在运行,请使用以下命令:

launchctl list | grep BuildAgent 70599 0 jetbrains.teamcity.BuildAgent2 69722 0 jetbrains.teamcity.BuildAgent
最后修改日期: 16日 7月 2024年