powershell - 我可以在 VSTS 中枚举变量组吗?

标签 powershell azure-devops azure-pipelines-release-pipeline

TL;DR:搜索文本文件中的占位符并将其替换为变量组中解密的 secret 值。

我想使用 PowerShell 脚本接收发布管道中的变量组,然后迭代列表,对正在发布的文件执行搜索和替换。

变量列表中的变量是 secret ,因此我想用变量的解密值覆盖文件中的占位符。

变量的值是特定于环境的,因此我不想在构建时提供这些值,也不想将解密的值包含在存储的工件中。

被搜索替换的文件将在发布时的执行中使用,但不会部署到主机,因此将在管道执行完成后被销毁。

最佳答案

Visual Studio Marketplace 中的标记化任务很好地完成了这项工作。您需要将其安装到您的 Azure DevOps 组织中,可通过 https://marketplace.visualstudio.com/items?itemName=TotalALM.totalalm-tokenization 获取。

默认情况下,标记化任务使用双下划线来标​​识占位符。它将替换与发布定义中变量名称匹配的任何文本,只要它被双下划线包围即可。

因此,如果您想将名为 MySecretVariable 的变量的值写入文件中,您需要将一个占位符(如 __MySecretVariable__)添加到文件中您想要写入该值的位置。

token 化任务将以纯文本形式将任何加密值写入文件中,但在发布日志中它们将被混淆。

如果您将变量存储在变量组中,只需将其链接到发布定义并将范围设置为适当的环境。

关于powershell - 我可以在 VSTS 中枚举变量组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56376438/

相关文章:

python - 使用 WIQL 从 Azure Devops 检索链接的工作项

azure-devops - 通过 Azure DevOps 通过一个发布过程部署许多应用程序

azure-devops - 当 TFVC 是源存储库时,Azure Pipelines 是否支持使用同一管道构建和发布多个功能分支?

powershell - 当变量值为$ null时,ForEach-Object循环运行

powershell - 如果服务正在运行,则保存到文件;如果未保存,则保存到另一个文件

powershell - 用于创建 Azure 服务总线队列和主题的 Azure powershell cmdlet

visual-studio - Visual Studio 2019 - Azure DevOps 的旧凭证已缓存,我们无法摆脱它

azure - 如何在 azure (AKS) 中的 Kubernetes 集群中附加磁盘

asp.net-web-api - VSTS 版本定义中的通配符

powershell - 在搜索字符串之后输出每行的内容