自动授权 teamcity 代理

自动授权 teamcity 代理

我们有一些 TeamCity 构建代理正在运行,我想在晚上自动销毁并重建所有代理,以便在早上拥有一组干净的代理。销毁和配置代理不是问题,但我找不到自动授权新代理的方法。TeamCity文档仅讨论 Web UI,这对于自动化来说是一个非常糟糕的起点。

有人能解决这个问题吗?

答案1

我正在尝试这样做,据我所知,我们需要我们的配置系统<build_agent_work_dir>/conf/buildAgent.properties在重启后保持文件内容不变。

参考:https://confluence.jetbrains.com/display/TCD9/Build+Agent+Configuration

答案2

Teamcity 不提供除 UI 之外的自动代理授权,但如果您使用相同的服务器/主机名,您可以尝试备份和恢复 Marcel 指定的 agent.properties 文件。此文件将包含代理的授权密钥

正如正确指出的那样,文档链接只有 UI 级别的授权,没有 CLI 或插件,而且很难批量执行

来自文档:

他们在 TeamCity Web UI 中获得授权

与服务器在同一台计算机上运行的代理默认获得授权

答案3

你可以使用官方插件来实现此目的https://confluence.jetbrains.com/display/TW/Agent+Custom+Token+Authorize+Plugin

不幸的是,它只允许每个令牌一个代理,但这是一个很好的起点。还有一些非官方插件,例如https://github.com/matt-richardson/TeamCityAgentAutoRegisterPlugin允许每个令牌自动授权多个代理

答案4

是的,您的代理服务器只需要使用唯一但程序生成的身份验证令牌创建 buildAgent.properties 文件,例如:

TOKEN=$(md5sum <<< $(hostname -f) | cut -d ' ' -f 1)

cat <<-EOF > /opt/buildAgent/conf/buildAgent.properties
serverUrl=https://myteamcityserver.corp
name=$(hostname -f)
workDir=../work
tempDir=../temp
systemDir=../system
authorizationToken=${TOKEN}
EOF

相关内容