在同一台计算机上运行多个TeamCity Agent?

时间:2009-11-24 10:31:21

标签: continuous-integration teamcity build-process

我们有几台构建计算机,每台计算机都运行一个TeamCity构建代理程序。每台机器都很强大,我们想在同一台机器上运行几个构建代理。

这可能,不使用虚拟化?是否有TeamCity的高质量替代品支持这一点?

3 个答案:

答案 0 :(得分:126)

是的,it's possible

可以在一台计算机上安装多个代理。它们作为单独的代理运行,TeamCity将它们作为不同的代理使用,而不是利用它们共享同一台机器的事实。 安装一个代理后,您可以安装另外一个代理,只要满足以下条件:

  • 代理安装在单独的目录中
  • 他们有独特的工作和临时目录
  • buildAgent.properties配置为具有name和ownPort属性的不同值

确保没有指定绝对签出目录的构建配置(或者,确保此类构建配置启用了“clean checkout”选项,并且它们不能并行运行)。

在Windows下,要将其他代理安装为服务,请修改 [agent dir] \ launcher \ conf \ wrapper.conf 更改属性以在计算机中具有不同的名称:

  • wrapper.console.title
  • wrapper.ntservice.name
  • wrapper.ntservice.displayname
  • wrapper.ntservice.description

答案 1 :(得分:29)

答案 2 :(得分:1)

最佳答案是正确的方法,但如果您想更轻松地完成此操作,可以使用TeamCityAgent Chocolatey package并将代理商名称,代理商文件夹和端口提供为--params,它将会处理设置配置文件以及通过server-jre包提取所需的Java版本。

对此的一个警告是,您需要在第一个代理之后的任何安装上使用--force,因为Chocolatey目前不了解如何使用不同的配置安装相同的应用程序作为" new&# 34;安装。

您还需要使用--version 2.0.1-beta-05,因为它仍处于测试阶段,但应尽快退出测试阶段。

第二个代理的完整安装示例: choco install teamcityagent --force -y --params 'serverUrl=http://teamcity.local:8111 agentName=AgentUno agentDir=C:\buildAgentUno ownPort=9091' --version 2.0.1-beta-05