Yaml Azure Devops TerraformInstaller 不明确

Posted

技术标签:

【中文标题】Yaml Azure Devops TerraformInstaller 不明确【英文标题】:Yaml Azure Devops TerraformInstaller is ambiguous 【发布时间】:2021-11-01 00:47:54 【问题描述】:

我在这里尝试使用 terraform 创建 aks,使用 azure-devops 将资源部署到 azure。 管道作业在一秒钟内失败。 下面是管道代码。

trigger:
- main

pool:
  vmImage: 'ubuntu-latest'

stages:
- stage: TerraformValidate
  jobs:
    - job: TerraformValidateJob
      continueOnError: false
      steps:
      - task: PublishPipelineArtifact@1
        displayName: Publish Artifacts
        inputs:
          targetPath: '$(System.DefaultWorkingDirectory)/terraform-manifests'
          artifact: 'terraform-manifests-out'
          publishLocation: 'pipeline'
      - task: TerraformInstaller@0
        displayName: Terraform Install
        inputs:
          terraformVersion: 'latest'
      - task: TerraformCLI@0
        displayName: Terraform Init
        inputs:
          command: 'init'
          workingDirectory: '$(System.DefaultWorkingDirectory)/terraform-manifests'
          backendType: 'azurerm'
          backendServiceArm: ''
          backendAzureRmResourceGroupName: ''
          backendAzureRmStorageAccountName: ''
          backendAzureRmContainerName: ''
          backendAzureRmKey: 'aks-base.tfstate'
          allowTelemetryCollection: false
      - task: TerraformCLI@0
        displayName: Terraform Validate
        inputs:
          command: 'validate'
          workingDirectory: '$(System.DefaultWorkingDirectory)/terraform-manifests'
          allowTelemetryCollection: false       

出现以下错误:

我已经安装了两个扩展:

【问题讨论】:

错误信息告诉你问题和解决方案。你有什么问题? @daniel :根据错误,它指的是 terraform 扩展,因为我是新手,所以无法映射提取问题。请帮我解决这个问题。 这能回答你的问题吗? YAML Azure Devops: Step task reference is invalid. The task name is ambiguous 不,我无法理解,我对所有这些都是新手,请帮助解决问题 您有两个扩展,它们提供任务TerraformInstaller 的不同实现。它无法确定使用哪一个。它为您提供了两个任务的完整 名称。选择一个并用它替换TerraformInstaller。或者卸载两个扩展之一。两者都行。 【参考方案1】:

同时安装这两个扩展后,我可以重现同样的问题。

问题的根本原因是 terraform install 任务同时存在于两个扩展中。

他们简化版的 YAML 任务名称都是TerraformInstaller@0

要解决此问题,您可以卸载两个扩展之一。

或者您可以指定全名。

例如:

- task: ms-devlabs.custom-terraform-tasks.custom-terraform-installer-task.TerraformInstaller@0

- task: charleszipp.azure-pipelines-tasks-terraform.azure-pipelines-tasks-terraform-installer.TerraformInstaller@0

【讨论】:

非常感谢它的工作,卸载一个扩展后。

以上是关于Yaml Azure Devops TerraformInstaller 不明确的主要内容,如果未能解决你的问题,请参考以下文章

Yaml Azure Devops TerraformInstaller 不明确

azure devops yaml管道未设置变量

Azure DevOps 中的多个 YAML 构建管道

YAML Azure Devops:步骤任务参考无效。任务名称不明确

为啥 SonarQube 不从 yaml 构建更新 Azure DevOps 质量门状态?

如何在 yaml 中处理 Azure DevOps 管道中的错误?