Yaml Azure Devops TerraformInstaller 不明确

Sat*_*dey 4 azure terraform azure-devops terraform0.12+

这里我尝试使用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       
Run Code Online (Sandbox Code Playgroud)

出现以下错误: 在此输入图像描述

我已经安装了这两个扩展: 在此输入图像描述

小智 15

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

在此输入图像描述

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

在此输入图像描述

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

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

或者您可以指定全名。

例如:

- task: ms-devlabs.custom-terraform-tasks.custom-terraform-installer-task.TerraformInstaller@0
Run Code Online (Sandbox Code Playgroud)

或者

- task: charleszipp.azure-pipelines-tasks-terraform.azure-pipelines-tasks-terraform-installer.TerraformInstaller@0
Run Code Online (Sandbox Code Playgroud)