2015-04-02 13 views
2

我使用TeamCity 8.x的EC2插件和Agent Push功能来创建在AWS EC2中运行的ubuntu构建代理。这些是按需创建和销毁的。如何修改EC2代理的TeamCity buildagent.properties文件?

有没有办法将自定义内容放入生成的构建代理程序的buildagent.properties文件中,例如,它可以知道安装了ansible并且它是什么版本?

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

我想我可以通过一个构建本身来做 - 但是那样会需要触发一个TeamCity不公开的事件。每当创建代理时都需要发生这种情况。

我也许可以通过EC2 UserData来做到这一点 - 除了TeamCity不允许我自定义它。

我可以尝试通过代理上的启动任务来完成此任务 - 除非在构建代理软件本身被推送到代理之前启动。

我想我可以使用incron来等待文件在我自己的内容中进行模板化之前存在 - 但任何人都可以想到另一种方法吗?

回答

0

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

要自动执行AMI创建,请查看packer

+0

创建环境变量,如'export foo = bar'?用特定的前缀?我将如何让这些持续重启之间,把它们放到'/ etc/profile.d/env.sh'中?你能指出一些文件吗?我空白了。 – 2015-04-11 15:15:40