如何通过Jenkins替换文件中找到的令牌?

t5zmwmid  于 6个月前  发布在  Jenkins
关注(0)|答案(1)|浏览(76)

我的大多数软件部署都使用Microsoft Team Foundation Server(TFS)。TFS允许我在特定环境(开发、测试、生产)的发布过程中动态替换特定配置文件中的文本。
它替换的文本是称为“tokens”的占位符。例如,在我的自动化部署期间,TFS将允许我们将配置文件中找到的tokens替换为每个环境的构建管理中保存的预定义值。这样,我不为任何环境在源代码控制中存储任何真实的凭证。我也不在源代码中存储任何脚本来保存这些耸人听闻的凭证。在发布期间动态插入到令牌之上,并且凭证托管/保存/配置在发布系统内部(而不是在脚本中)。
例如,我有一个配置文件(web.config),其中包含令牌。令牌看起来像这样:

MySettingName=${MYSETTINGVALUE}

字符串
在发布到DEV期间,我希望将文本${MYSETTINGVALUE}替换为单词TEN。在发布到PROD期间,我希望将相同的${MYSETTINGVALUE}文本替换为单词橙子。我希望将这两个值(TEN和ORANGE)存储在发布管理系统中,而不是脚本中。

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

我已经上下搜索了这个具体的答案。虽然有很多博客,文章,文档存在,他们没有一个直接谈到这个问题。

  • 我宁愿不使用一些额外的第三方软件来做到这一点。
  • 我宁愿不启动一些手动构建和提供这些价值观的每一次。
  • 我也不喜欢使用操作系统级别的系统变量(又称为环境变量)。如果服务器死亡,我宁愿不记得在下一个服务器上设置这些操作系统环境变量。
1u4esq0p

1u4esq0p1#

Jenkins有一个内置的凭证插件,用于处理构建中的秘密。请参阅本文了解如何使用它们:https://docs.cloudbees.com/docs/cloudbees-ci/latest/cloud-secure-guide/injecting-secrets
基本上,它安全地存储凭证,并将它们作为变量注入到您的作业中,然后可以像其他任何变量一样使用。

相关问题