Azure DevOps使用其他项目中另一个存储库中的模块

时间:2020-11-08 14:42:36

标签: git azure azure-devops azure-pipelines

我在Azure DevOps中有我的编码项目,我想使用自己创建的Terraform模块。但是我想将terraform和我的应用程序保留在不同的项目中。

我想在AZ管道中使用Terraform时遇到问题,当我运行管道时收到以下错误:

  - task: Bash@3
    displayName: 'DEBUG'
    inputs:
      targetType: 'inline'
      script: |
        git config --get-all --global http.https://dev.azure.com/my-organization/Infra/_git/terraform-modules.extraheader "Authorization: bearer $SYSTEM_ACCESSTOKEN"
        terraform init
    env:
      SYSTEM_ACCESSTOKEN: $(System.AccessToken)

输出

Error: Failed to download module

Could not download module "iam" (aws_ecs.tf:11) source code from
"git::https://dev.azure.com/my-organization/Infra/_git/terraform-modules": error
downloading 'https://dev.azure.com/my-organization/Infra/_git/terraform-modules':
/usr/bin/git exited with 128: Cloning into '.terraform/modules/iam'...
fatal: could not read Username for 'https://dev.azure.com': terminal prompts
disabled

模块源配置如下:

  source = "git::https://dev.azure.com/my-organization/Infra/_git/terraform-modules//modules/ecs-iam"

AZ DevOps设置(图像):

在本地计算机上,一切正常,将模块克隆好。

我尝试遵循官方指南https://www.terraform.io/docs/modules/sources.html

这有可能吗?

2 个答案:

答案 0 :(得分:1)

我认为git config中的网址错误,应该删除存储库名称后的所有内容。

它应该像这样:

git config --global http.https://dev.azure.com/my-organization/Infra.extraheader "Authorization: bearer $SYSTEM_ACCESSTOKEN"

答案 1 :(得分:0)

无需直接使用Git。将repository资源添加到您的YAML中,然后使用checkout进行克隆。

参考:https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema%2Cparameter-schema#resources