Ошибка: порождает терраформ ENOENT во время Azure Pipeline Terraform - PullRequest
1 голос
/ 18 января 2020

При попытке запустить terraform init как задачу в Azure конвейере, он сообщает об ошибке

spawn C: \ hostedtoolcache \ windows \ terraform \ 0.12.7 \ x64 \ terraform.exe ENOENT

Установка выглядит нормально, так как основные функции c проверены на этапе установки (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

Terraform: init

...
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 секунды дольше).

1 Ответ

1 голос
/ 18 января 2020

Оказывается, неверный путь к рабочему каталогу, так как структура каталога была изменена.

Изменение всех именованных рабочих каталогов с Terraform/terraform на просто terraform исправило проблему.

Предположительно и в этом, и в случаях, когда checkout не было выполнено, Terraform просто не может найти main.tf, но ошибка отсутствует или потеряна.

...