如何为EC2代理修改TeamCity buildagent.properties文件?

时间:2015-04-02 15:49:36

标签: teamcity teamcity-8.0

我正在使用TeamCity 8.x的EC2插件和代理推送功能来创建在AWS EC2中运行的ubuntu构建代理。这些是按需创建和销毁的。

有没有办法将自定义内容放入生成的build-agent的buildagent.properties文件中,例如,它可以知道安装了ansible以及它是什么版本?

我正在寻找一种可以完全自动化的方式,但TeamCity(至少是v8)似乎没有提供任何定制文件的机会,无论是通过提供静态内容还是通过某种形式的模板化。

我想我可以通过构建本身来实现 - 但那时需要触发TeamCity不会暴露的事件。每次创建代理时都需要进行此操作。

我可以通过EC2 UserData执行此操作 - 除了TeamCity不允许我自定义它。

我可以尝试通过代理上的on-startup任务执行此操作 - 除非在构建代理软件本身被推送到代理之前触发。

我想我可以使用incron,在我自己的内容中模板化之前等待文件存在 - 但是有人能想到不同的方法吗?

1 个答案:

答案 0 :(得分:0)

您可以在AMI出现之前在AMI上创建环境变量。在teamcity中为AMI创建配置文件时,它将测试AMI并获取build.properties,环境变量和系统属性。然后,您可以使用代理要求来限制哪些构建可以在哪些代理上运行。

要自动创建AMI,请查看packer