在同一台计算机上运行多个TeamCity代理?
我们有几个构build机器,每个构build一个TeamCity构build代理。 每台机器都非常强大,我们希望在同一台机器上运行多个构build代理。
这是可能的, 而不使用虚拟化 ? 是否有TeamCity的质量替代品支持这个?
是的, 这是可能的 :
几个代理可以安装在一台机器上。 他们作为独立的代理人工作,TeamCity作为不同的代理人工作,不利用他们共享同一台机器的事实。 安装一个代理后,您可以安装另外一个代理,只要满足以下条件:
- 代理安装在单独的目录中
- 他们有独特的工作和临时目录
- buildAgent.propertiesconfiguration为name和ownPort属性具有不同的值
确保没有指定绝对检出目录的构buildconfiguration(或者,确保这样的构buildconfiguration启用了“清理检出”选项,并且它们不能并行运行)。
在Windows下,要将其他代理安装为服务,请修改[代理目录] \ launcher \ conf \ wrapper.conf以将属性更改为在计算机中具有不同的名称:
- wrapper.console.title
- wrapper.ntservice.name
- wrapper.ntservice.displayname
- wrapper.ntservice.description
你也可以看看这个博客文章的分步指南
http://handcraftsman.wordpress.com/2010/07/20/multiple-teamcity-build-agents-on-one-server/
最好的答案是正确的方法,但是如果你想更容易地完成这个,你可以使用TeamCityAgent的Chocolatey包,并提供代理名称,代理文件夹和端口作为--params
,它将处理设置configuration文件为以及通过server-jre
软件包提供所需的Java版本。
有一点需要注意的是,你需要在第一个代理之后使用--force
进行任何安装,因为Chocolatey目前不理解使用不同的configuration安装相同的应用程序作为“新”安装。
您还需要使用--version 2.0.1-beta-05
因为这仍然处于testing阶段,但是应该尽快将其从beta --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