我们正在使用 TeamCity 部署持续集成环境。当我们完成 CI 流程并转向持续部署时,我们遇到了如何管理生产密码的问题。对于配置中的其他更改,我们使用 Web.Config 转换。但是,我真的不想在构建配置文件中烘焙生产密码。
在 CI/CD 之前,我们会获取 Web.config,使用 aspnet_regiis 解密连接字符串,更改密码,然后重新加密。显然,这很容易出错,根本不符合 CI/CD 的精神。
我还有其他几个想法,基本上都是关于在部署脚本中使用某些东西来重写然后加密文件的连接字符串部分,但这似乎一定是一个常见问题,而且必须是一些普遍接受的解决方案。但到目前为止,我找不到它。有没有“正确的方法”?
谢谢!
最佳答案
自 TeamCity 7.0 起可用的一种可能的解决方案是使用 typed parameters .您可以在 TeamCity 中定义一个 password 类型的参数,并以某种方式将其传递给您的构建脚本(作为环境变量或作为您的构建脚本属性)。
TeamCity 将此类参数的值存储在其自己的配置文件中,并以加密形式存储在数据库中。如果密码出现在构建日志或构建参数页面上,它将被替换为 ***。
关于c# - 在持续部署中管理密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9470703/