如何在不同的机器上用不同的值替换令牌?

时间:2018-08-08 06:35:58

标签: tfs azure-devops release-management azure-pipelines-release-pipeline ms-release-management

我将TFS 2018 Update 2用作CI / CD服务器。 而且我将Replace Token任务用作令牌替换解决方案。

当我的web.config文件中有令牌A时, 根据我的tfs版本定义,它将部署到2个VM,VM B和VM C。

如果我需要VM B上的令牌A作为值V1,并且需要VM C上的令牌A作为值V2。

如何通过“替换令牌”任务执行此操作? 我的想法是使用Powershell任务在替换令牌任务之前更新变量A。这可能吗?

请提供或分享您的想法,这对我有很大帮助。

谢谢。

1 个答案:

答案 0 :(得分:0)

选项1

是的,您可以使用此Powershell来设置变量

Write-Host "##vso[task.setvariable variable=sauce]crushed tomatoes"
Write-Host "##vso[task.setvariable variable=secret.Sauce;issecret=true]crushed tomatoes with garlic"

请参见here

但是,使用Jesse的Variable Toolbox,您会发现更方便。

选项2

我在考虑另一种技术:将每台机器的值包含在包含机器名称的变量中,并让VSTS在执行任务之前为您解析它。例子

在文件中:

....#(tok)#....

变量:

tok_vma = 'v1'
tok_vmb = 'v2'
tok = $(tok_$(Agent.MachineName))

嵌套变量受支持,如您所见here。 HTH