我们有几台构建机器,每台都运行一个TeamCity构建代理。每台机器都很强大,我们想在同一台机器上运行多个构建代理。
这是可能的,而无需使用虚拟化?是否有TeamCity的高质量替代方案可以支持这一点?
Answers:
是的,有可能:
可以在单个计算机上安装多个代理。它们充当单独的代理,而TeamCity与它们作为不同的代理一起工作,而不利用它们共享同一台计算机这一事实。安装一种代理后,如果满足以下条件,则可以安装另一种:
确保没有指定绝对签出目录的构建配置(或者,确保此类构建配置启用了“ clean checkout”选项并且它们不能并行运行)。
在Windows下,要将其他代理作为服务安装,请修改[agent dir] \ launcher \ conf \ wrapper.conf 以将属性更改为在计算机中具有不同的名称:
最佳答案是正确的方法,但是如果您想更轻松地完成此操作,则可以使用TeamCityAgent Chocolatey软件包并提供代理名称,代理文件夹和端口--params
,它将处理设置配置文件以及提取通过所需的Java版本server-jre
。
需要注意的一个问题是--force
,在第一个代理程序之后,您需要在任何安装上使用,因为Chocolatey目前尚不了解以相同的配置安装与“新”安装不同的相同应用程序。
您还需要使用,--version 2.0.1-beta-05
因为它仍处于测试阶段,但应尽快使其脱离beta版。
第二个代理的完整安装示例:
choco install teamcityagent --force -y --params 'serverUrl=http://teamcity.local:8111 agentName=AgentUno agentDir=C:\buildAgentUno ownPort=9091' --version 2.0.1-beta-05