如何通过Jenkins替换文件中的令牌? 我使用微软Team Foundation Server(TFS)来进行大部分软件部署。TFS允许我在特定环境(开发、测试、产品)的发布过程中动态替换特定配置文件中的文本

如何通过Jenkins替换文件中的令牌? 我使用微软Team Foundation Server(TFS)来进行大部分软件部署。TFS允许我在特定环境(开发、测试、产品)的发布过程中动态替换特定配置文件中的文本,jenkins,jenkins-pipeline,continuous-deployment,Jenkins,Jenkins Pipeline,Continuous Deployment,它替换的文本是称为“标记”的占位符。例如,在我的自动部署过程中,TFS将允许我们使用每个环境的构建管理中保存的预定义值替换配置文件中的令牌。这样,我就不会在任何环境的源代码管理中存储任何真正的凭据。我也不会在源代码中存储任何保存这些敏感凭据的脚本。在发布期间,凭证将动态插入到令牌之上,凭证将托管/保存/配置在发布系统内部(而不是在脚本中) 例如,我有一个配置文件(web.config),其中包含令牌。令牌的外观如下所示: MySettingName=${MYSETTINGVALUE} 在发布到

它替换的文本是称为“标记”的占位符。例如,在我的自动部署过程中,TFS将允许我们使用每个环境的构建管理中保存的预定义值替换配置文件中的令牌。这样,我就不会在任何环境的源代码管理中存储任何真正的凭据。我也不会在源代码中存储任何保存这些敏感凭据的脚本。在发布期间,凭证将动态插入到令牌之上,凭证将托管/保存/配置在发布系统内部(而不是在脚本中)

例如,我有一个配置文件(web.config),其中包含令牌。令牌的外观如下所示:

MySettingName=${MYSETTINGVALUE}
在发布到DEV的过程中,我希望文本${MYSETTINGVALUE}替换为单词TEN。在发布到PROD的过程中,我希望将相同的${MYSETTINGVALUE}文本替换为橙色。我想将这两个值(十和橙色)存储在发布管理系统中,而不是存储在脚本中

我如何配置Jenkins来做同样的事情?

我上下搜寻了这个具体的答案。虽然存在许多博客、文章和文档,但没有一篇直接谈到这个问题

  • 我宁愿不使用一些额外的第三方软件来做 这个

  • 我不希望启动一些手动构建并提供这些 珍惜每一次

  • 我也不希望使用操作系统级别的系统 变量(又名环境变量)。如果服务器死了,我会 不必记住设置那些操作系统环境 下一台服务器上的变量


詹金斯有一个内置的凭证插件,用于处理构建中的机密。 有关如何使用它们,请参阅本文:


基本上,它安全地存储凭据,并将它们作为变量注入到作业中,然后可以像其他变量一样使用

澄清一下:您希望这些toke的值存储在Jenkins中某个安全的位置?您是否需要以文件将被修补并保存到磁盘的方式替换这些令牌,或者您将这些令牌读取到内存中,并且这些值只能作为脚本的参数使用?@JoergS是的。我更愿意将这些令牌的值存储在Jenkins中。我确实需要根据要部署到的环境替换文件/磁盘上的令牌。应用程序将从文件中读取值并在内存中使用。您是否已尝试下面提到的凭据插件?