You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何授权Microsoft托管代理拉取同一ADO项目的Terraform Git模块?

解决Microsoft托管代理拉取同一ADO项目内Terraform Git模块的权限问题

方法1:使用Azure DevOps系统访问令牌(推荐)

利用ADO流水线自动生成的System.AccessToken完成授权,无需额外维护密钥:

  1. 修改流水线的Terraform Init任务,在执行terraform init前配置Git凭据:
- powershell: |
    git config --global credential.helper store
    echo "https://$(System.AccessToken):x-oauth-basic@dev.azure.com" > "$HOME/.git-credentials"
    terraform init
  displayName: 'Terraform Init'
  workingDirectory: src/terraform
  1. 配置流水线作业权限:
    • 进入流水线编辑页,点击右上角「...」→「作业权限」
    • 开启「允许脚本访问OAuth令牌」
    • 在「仓库权限」中,将keyvault仓库的读取权限设为「允许」

方法2:通过相对路径引用模块(限流水线同时检出双仓库场景)

如果流水线同时拉取了repo_that_uses_keyvault_module和keyvault两个仓库,可直接用本地路径引用模块,跳过Git授权:

  1. 在流水线中添加额外的仓库检出步骤:
- checkout: git://org1/project1/keyvault
  path: 'keyvault'
  1. 修改Terraform模块源为相对路径:
module "key_vault" {
  source = "../../keyvault" # 根据实际检出后的目录结构调整路径

  # 模块参数配置
}

方法3:使用个人访问令牌(PAT)

若上述方法不适用,可创建具备仓库读取权限的PAT作为备选方案:

  1. 在ADO中创建PAT,权限勾选「代码(读取)」
  2. 在流水线中添加保密变量ADO_PAT,值为创建的PAT
  3. 修改Terraform Init任务:
- powershell: |
    git config --global credential.helper store
    echo "https://$(ADO_PAT):x-oauth-basic@dev.azure.com" > "$HOME/.git-credentials"
    terraform init
  displayName: 'Terraform Init'
  workingDirectory: src/terraform

内容的提问来源于stack exchange,提问作者michasaucer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 04:35:19