AWS CodeBuild /codebuild/output/tmp/script.sh: terraform: Ex



我正在使用AWS Codebuild通过terraform构建基础设施。我创建了这个构建规范。yaml文件。

version: 0.2
phases: 
install:
commands:
- "apt install unzip -y"
- "wget https://releases.hashicorp.com/terraform/1.1.8/terraform_1.1.8_linux_arm64.zip"
- "unzip terraform_1.1.8_linux_arm64.zip"
- "mv terraform /usr/local/bin/"
pre_build:
commands:
- terraform init
build:
commands:
- terraform plan
- terraform apply -auto-approve
post_build:
commands:
- echo "terraform apply completed on `date`"

我能够成功安装terraform,但无法运行terraform init并初始化代码。我得到这个错误:

[Container] 2022/06/23 10:25:29 Phase complete: INSTALL State: SUCCEEDED
[Container] 2022/06/23 10:25:29 Phase context status code:  Message: 
[Container] 2022/06/23 10:25:29 Entering phase PRE_BUILD
[Container] 2022/06/23 10:25:29 Running command terraform init
/codebuild/output/tmp/script.sh: 4: /codebuild/output/tmp/script.sh: terraform: Exec format error

这是我的地形设置。

terraform {
required_providers {
aws = {
source  = "hashicorp/aws"
version = "~> 4.0"
}
}
backend "s3" { }
}

我尝试了不同的事情,比如改变aws提供商的版本。我打开和关闭"特权"。代码构建项目上的标志。有人能建议我做错了什么吗?

您在arm64架构中使用TF二进制文件。也许你应该用amd64代替:

- "wget https://releases.hashicorp.com/terraform/1.1.8/terraform_1.1.8_linux_amd64.zip"
- "unzip terraform_1.1.8_linux_amd64.zip"

最新更新