错误:在 Azure Pipeline Terraform 期间生成 terraform ENOENT

ti7*_*ti7 7 terraform azure-pipelines terraform-provider-azure

尝试terraform init在 Azure Pipeline 中作为任务运行时,出现错误说明

生成 C:\hostedtoolcache\windows\terraform\0.12.7\x64\terraform.exe ENOENT

安装看起来不错,因为在安装步骤 ( terraform version)期间验证了基本功能

相关管道任务

...
  - task: TerraformInstaller@0
    displayName: 'Install Terraform 0.12.7'
    inputs:
      terraformVersion: 0.12.7
  - task: TerraformTaskV1@0
    displayName: 'Terraform : init'
    inputs:
        command: 'init'
        workingDirectory: '$(System.DefaultWorkingDirectory)/Terraform/terraform'
...
Run Code Online (Sandbox Code Playgroud)

安装 Terraform 0.12.7

...
  - task: TerraformInstaller@0
    displayName: 'Install Terraform 0.12.7'
    inputs:
      terraformVersion: 0.12.7
  - task: TerraformTaskV1@0
    displayName: 'Terraform : init'
    inputs:
        command: 'init'
        workingDirectory: '$(System.DefaultWorkingDirectory)/Terraform/terraform'
...
Run Code Online (Sandbox Code Playgroud)

地形:初始化

...
Verifying Terraform installation...
C:\hostedtoolcache\windows\terraform\0.12.7\x64\terraform.exe version
Terraform v0.12.7

Your version of Terraform is out of date! The latest version
is 0.12.19. You can update by downloading from www.terraform.io/downloads.html
Finishing: Install Terraform 0.12.7
Run Code Online (Sandbox Code Playgroud)

许多其他用户报告说通过添加结帐步骤成功解决了这个问题,但管道会自动执行此操作(可能以前的版本没有),并且手动添加它没有效果(由于不同的选项,实际上花了 2 秒的时间)。

ti7*_*ti7 13

原来工作目录路径不正确,因为目录结构已更改。

将所有命名的工作目录从 更改Terraform/terraform为 刚刚terraform更正了问题。

大概在这种情况下和checkout未执行的情况下,Terraform 根本无法定位main.tf,但错误丢失或丢失。

  • 对我来说,当在发布管道上未指定输入工件时,以及当“Terraform init”任务上的工作目录与输入工件的“源别名”不匹配时,就会发生这种情况。我必须将路径设置为“$(System.DefaultWorkingDirectory)/[InputArtifactSourceAlias]/drop/[TfScriptDir]”。 (2认同)