Yaml Azure Devops TerraformInstaller 是不明确的。

4

我正在尝试使用 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       

遇到以下错误: enter image description here

我已安装两个扩展程序: enter image description here


1
错误信息告诉您问题和解决方案。您有什么问题? - Daniel Mann
@daniel:根据错误提示,它是指向terraform扩展程序的,由于我是新手,无法映射提取问题。请帮助我解决这个问题。 - Satyam Pandey
这个回答解决了你的问题吗?YAML Azure Devops:步骤任务引用无效。任务名称不明确 - bursson
不好意思,我无法理解,我对这些都很新,请帮忙解决。 - Satyam Pandey
你有两个扩展程序提供了不同的TerraformInstaller任务实现。它无法确定使用哪一个。它会给出这两个任务的完整名称。选择其中一个并将TerraformInstaller替换为它。或卸载其中一个扩展程序。两种方法都可以。 - Daniel Mann
非常感谢,卸载了一个扩展程序后它起作用了。 - Satyam Pandey
1个回答

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

enter image description here

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

enter image description here

他们的简化版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

1
非常感谢,卸载了一个扩展程序后它起作用了。 - Satyam Pandey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接