【问题标题】:update variable group from azure devops pipeline从 azure devops 管道更新变量组
【发布时间】: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 请在下面发布对您有用的答案,以便对社区中的其他人也有帮助..

标签: azure azure-devops azure-pipelines azure-cli


【解决方案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) 管理员权限来给变量组:

【讨论】:

    猜你喜欢
    • 2021-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    • 2020-02-24
    • 2020-12-08
    • 2021-11-23
    相关资源
    最近更新 更多