从 azure devops 管道更新变量组
Posted
技术标签:
【中文标题】从 azure devops 管道更新变量组【英文标题】:update variable group from azure devops pipeline 【发布时间】:2021-11-23 07:12:12 【问题描述】:我正在尝试使用管道中的az pipelines
cli 更新变量组中的变量,我已经创建了一个 PAT 并将其传递给管道它工作正常。但我使用默认值,例如$(System.AccessToken)
,它能够从变量组中列出变量,但无法更新变量组。
它的说法
错误:您无权在 变量组。变量组管理员应将您添加到 管理员角色。 ##[错误]脚本失败,退出代码:1
经过一番搜索,我发现我需要在变量组中添加 Project Collection Build Service (name) 作为管理员,然后重试。我已经添加了,但我仍然遇到同样的错误。有什么建议吗?
我使用的是经典管道,这是从管道中导出的任务。
steps
- task: AzureCLI@2
displayName: 'Azure CLI '
inputs:
azureSubscription: 'sc'
scriptType: pscore
scriptLocation: inlineScript
inlineScript: |
az extension add --name azure-devops
az pipelines variable-group variable list --group-id id --org "orgname" --project "projectname"
az pipelines variable-group variable update --group-id id --name apim-service-name --value $(str_tf_module_containername) --org "orgname" --project "projectname"
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
【问题讨论】:
您在哪个身份下运行 az 命令?我可以看到您正在使用服务连接。您可以尝试添加az account show
并检查日志以查看帐户/身份是否具有变量组所需的管理员权限?
将项目集合构建服务添加为 管理员 帮助我克服了错误。这仍然是个问题吗?
是的,我不能使用 system.accesstoken,我必须使用我自己的 PAT 来完成这项工作。
System.Accesstoken 是为服务身份“项目集合构建服务(帐户)”生成的 PAT 令牌。此令牌有效期为 48 小时。
@threeleggedrabbit 请在下面发布对您有用的答案,以便对社区中的其他人也有帮助..
【参考方案1】:
这很好用:
steps
- pwsh: |
az extension add --name azure-devops
az pipelines variable-group variable list --group-id id --org "orgname" --project "projectname"
az pipelines variable-group variable update --group-id id --name apim-service-name --value $(str_tf_module_containername) --org "orgname" --project "projectname"
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
但是你需要给Project Collection Build Service (account)
管理员权限来给变量组:
【讨论】:
以上是关于从 azure devops 管道更新变量组的主要内容,如果未能解决你的问题,请参考以下文章
使用调度程序和变量组运行 Azure DevOps CI 管道
如何在 Azure DevOps 变量组中使用 SecureFile?