我正在尝试为Terraform构建一个AWS自定义提供程序。
提供程序位于这个存储库:https://www.terraform.io/docs/cloud/run/install-software.html#custom-and-community-providers和遵循上的所有指令来创建提供程序二进制。
因此,基本上,我将二进制文件放在下面的目录结构中,以便Terraform获取它:terraform.d/plugins/linux_amd64/.
但是,当我使用编译好的二进制文件运行回购时,我在Terraform云上得到了这个错误:
/terraform/aws_tf/terraform.d/plugins/linux_amd64/terraform-provider-aws:错误:未能实例化提供程序“
”以获取架构: fork/exec exec格式错误
我谷歌了一下,发现我必须静态编译二进制文件并指定体系结构,我使用以下命令进行了这样的操作:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -a -ldflags '-w -extldflags "-static"'
如果我运行文件来获取二进制文件的详细信息,它将显示为静态链接的file terraform-provider-aws: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped。
但是在Terraform上,它仍然带着同样的错误返回。
我首先在LinuxMint19.3(我正在使用的操作系统)上构建了二进制文件,当它不起作用时,我创建了一个Ubuntu18.04VM,并在那里试用了它,因为医生们说Terraform运行在Ubuntu上,所以我认为它会产生不同的效果,但仍然没有运气。
如果有人曾经做过这件事,或者知道我在哪里做错了,请帮助我。我在这里失去理智了。
发布于 2020-07-18 09:28:13
这个问题有点奇怪。
第一条评论:
第二句话
当我用curl下载
-rwxr-xr-x 1 abdennour staff 653 Jul 18 12:06 terraform-provider-helmfile-rwxr-xr-x@ 1 abdennour staff 29358832 Jul 18 12:22 terraform-provider-helmfile我在这里可以看到,curl没有下载完整的文件,因为与手动下载相比,文件大小太小了。
此外,当我手动下载文件时,会有@后缀文件权限。
我不知道为什么。但现在起作用了
https://stackoverflow.com/questions/60451630
复制相似问题