Error: spawn terraform ENOENT during Azure Pipeline Terraform
Solution 1
Turns out the working directory path was incorrect, as the directory structure had been changed.
Changing all the named working directories from Terraform/terraform
to just terraform
corrected the issue.
Presumably both in this and cases where checkout
was not performed, Terraform simply cannot locate main.tf
, but the error is missing or lost.
Solution 2
I stumbled upon this error when I renamed the release pipeline artifact and did not re-push the code, hence causing the cache not to invalidate.
ti7
git blame "you knew it was wrong, but you did it anyways" eh, hash it with a set and find the length if you find you need to care about the size of your int (just kidding: it always matters..), it's normally best to explicitly use a type with a size like uint32_t
Updated on June 25, 2022Comments
-
ti7 almost 2 years
When attempting to run
terraform init
as a task in an Azure Pipeline, it errors statingspawn C:\hostedtoolcache\windows\terraform\0.12.7\x64\terraform.exe ENOENT
The installation appears fine, as basic functionality is verified during the install step (
terraform version
)Relevant Pipeline Tasks
... - 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' ...
Install 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
Many other users reported success fixing this by adding a checkout step, but the pipeline automatically does this (presumably previous versions did not), and manually adding it had no effect (actually took 2s longer due to different options).
-
Timo over 3 yearsFor me, this occurred when no input artifact was specified on the release pipeline, and also when the working directory on the
Terraform init
task did not match the input artifact's "source alias". I had to set the path to$(System.DefaultWorkingDirectory)/[InputArtifactSourceAlias]/drop/[TfScriptDir]
. -
Jeroen Steenbeeke over 3 yearsThis does not provide an answer to the question. Once you have sufficient reputation you will be able to comment on any post; instead, provide answers that don't require clarification from the asker. - From Review
-
Jeremy Caney over 3 years@JeroenSteenbeeke: Why do you say that? It clearly suggests a possible cause (renaming the release pipeline) and solution (repushing the code). Seems like an answer to me.
-
Jeroen Steenbeeke over 3 yearsYour answer showed up in the "low quality post" moderation queue, and in my opinion this should have been a comment on the question ("have you tried renaming?") rather than an answer. The message I posted is one of a set of canned responses offered by Stackoverflow
-
Filip Výborný over 3 years@JeroenSteenbeeke agree this should have been a comment. I don't have enough reputation to post comments. I just wanted to help, spend an hour figuring this myself.