如何以特定用户身份运行TeamCity构建

12

我有一个构建配置,可以将我的代码部署到一台机器上。根据我要部署到哪台机器(例如dev / uat / prod),我需要以不同的用户身份运行。

与其在构建文件中硬编码用户名和密码(由于安全原因定期更改,这并不是真正可行的),我想在运行构建时输入它们。 我希望TeamCity中的"Run Custom Build"有此选项,但我找不到任何地方输入该信息。

除了远程登录到构建代理并更改构建代理运行的用户之外,是否有其他方法实现这一点?

谢谢

2个回答

7
使用RunAs插件结合TeamCity 7的新类型参数,您可以将密码作为“类型”参数插件。然后,在运行屏幕上输入时,它将不会在构建历史记录中显示。 编辑:如评论中所述,您可能不想这样做。考虑使用不同用户运行的单独池,并使用参数指定哪些构建受支持。

TeamCity 8 链接到类型参数:http://confluence.jetbrains.com/display/TCD8/Typed+Parameters - Jeff Martin
1
runas插件似乎在您拥有的每个构建上运行,这对我来说不起作用。 此外,值得阅读的文档链接提供的密码保护并不是非常强大。 - Jeff Martin
这似乎是一种非常不安全的处理凭据的方式,而且现在也是一个停滞不前的项目。 - brianary
是的,我不知道做这件事情的“安全”方式是什么。也许真的没有一种方法。我们已经转向让每个“池”代理以特定用户身份运行,然后允许在需要这些用户/权限的代理上运行某些构建。 - Dan Fitch
让runas.password成为必需的系统属性,在运行构建之前提示它怎么样? - koenmetsu

2

谢谢,但是我应该如何使用它来更改构建运行的用户帐户? - Neil Mosafi
在您的构建文件中(例如,对于Ant构建运行程序),您可以在用户名/密码出现的位置写入${deploy_user}和${deploy_pwd}。 - KIR
在构建属性中,您可以为变量'deploy_user'和'deploy_pwd'指定默认值。使用RunCustomBuild对话框启动构建时,您可以指定任何其他参数以用于'deploy_user'和'deploy_pwd',并且它们将在您指定的构建脚本中使用。如果您的构建不支持系统属性,则可以以类似的方式使用/设置环境变量。希望这有所帮助。 - KIR
1
它可以工作,但会将我的用户名和密码暴露给所有能够查看构建历史的人。无论如何还是谢谢。 - Neil Mosafi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接