【问题标题】:Error: spawn terraform ENOENT during Azure Pipeline Terraform错误:在 Azure Pipeline Terraform 期间生成 terraform ENOENT
【发布时间】:2023-03-27 06:41:01
【问题描述】:

当尝试在 Azure Pipeline 中将 terraform init 作为任务运行时,会出现错误提示

spawn 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'
...

安装 Terraform 0.12.7

...
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

地形:初始化

...
C:\hostedtoolcache\windows\terraform\0.12.7\x64\terraform.exe validate
##[error]Error: There was an error when attempting to execute the process 'C:\hostedtoolcache\windows\terraform\0.12.7\x64\terraform.exe'. This may indicate the process failed to start. Error: spawn C:\hostedtoolcache\windows\terraform\0.12.7\x64\terraform.exe ENOENT
Finishing: Terraform : validate

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

【问题讨论】:

    标签: terraform azure-pipelines terraform-provider-azure


    【解决方案1】:

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

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

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

    【讨论】:

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

    我在重命名发布管道工件并且没有重新推送代码时偶然发现了这个错误,因此导致缓存不会失效。

    【讨论】:

    • 这并没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review
    • @JeroenSteenbeeke:你为什么这么说?它清楚地表明了可能的原因(重命名发布管道)和解决方案(重新推送代码)。似乎是对我的回答。
    • 您的答案出现在“低质量帖子”审核队列中,在我看来,这应该是对问题的评论(“您是否尝试过重命名?”)而不是答案。我发布的消息是 Stackoverflow 提供的一组预设回复之一
    • @JeroenSteenbeeke 同意这应该是一条评论。我没有足够的声誉来发布 cmets。我只是想帮忙,自己花一个小时想办法。
    猜你喜欢
    • 1970-01-01
    • 2022-07-23
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    • 2018-08-13
    • 2020-11-03
    • 2018-12-15
    • 2021-08-29
    相关资源
    最近更新 更多