如何为不同的机器替换具有不同值的令牌?
How to replace a token with different values for different machines?
我使用 TFS 2018 更新 2 作为 CI/CD 服务器。
我使用 Replace Token 任务作为我的令牌替换解决方案。
当我的 web.config 文件中有令牌 A 时,
根据我的 tfs 发布定义,它将部署到 2 个虚拟机,VM B 和 VM C。
如果我需要 VM B 上的令牌 A 作为值 V1,VM C 上的令牌 A 作为值 V2。
如何通过替换令牌任务来完成此操作?
我的想法是在 Replace Token 任务之前使用 powershell 任务更新变量 A。这可能吗?
请提供或分享您的想法,这将对我有很大帮助。
谢谢。
选项 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
我使用 TFS 2018 更新 2 作为 CI/CD 服务器。 我使用 Replace Token 任务作为我的令牌替换解决方案。
当我的 web.config 文件中有令牌 A 时, 根据我的 tfs 发布定义,它将部署到 2 个虚拟机,VM B 和 VM C。
如果我需要 VM B 上的令牌 A 作为值 V1,VM C 上的令牌 A 作为值 V2。
如何通过替换令牌任务来完成此操作? 我的想法是在 Replace Token 任务之前使用 powershell 任务更新变量 A。这可能吗?
请提供或分享您的想法,这将对我有很大帮助。
谢谢。
选项 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