Terraform定制提供程序-要求用户输入错误

Era*_*eni 3 terraform

我对terraform和golang还是很陌生,我正在尝试为POC实现一个自定义提供程序,以检查我们是否可以利用terraform供我们自己使用。

我能够根据视频和一些GitHub示例编写和构建golang提供程序。

我创建了一个go工作区,并将$ GOPATH设置为默认值$ HOME / go。

Terraform软件包安装在$ GOPATH / src / github / hashicorp中。

Terraform二进制文件安装在$ HOME / dev中,并在$ PATH中指定。

根据视频,我在/ terraform / builtin / providers / mycustomprovider中创建了提供程序包

然后将包打包到$ GOPATH / bin

一旦我尝试“地形计划”,我将得到以下信息:

provider.incapsula:未安装合适的版本

版本要求:“(任何版本)”

安装的版本:无

我将自定义提供程序二进制文件添加到terraform.d / plugins中,并尝试再次运行“ terraform plan”。

现在我收到以下错误:

错误:要求用户输入错误:发生1个错误:* provider.incapsula:fork / exec〜/ .terraform.d / plugins / darwin_amd64 / terraform-provider-incapsula:权限被拒绝

我尝试将chmod更改为666,然后将二进制文件切成字符串,但没有运气,我仍然遇到相同的错误。

我试图寻找这种问题,但找不到任何参考。

我将不胜感激。

谢谢!

taz*_*r84 5

提供程序二进制文件需要执行权限,因此请尝试使用755而不是666。此外,如果二进制文件不在您的目录中$PATH,则通常需要运行terraform init -plugin-dir = .terraform / plugins / darwin_amd64“,以使terraform能够正常运行。提供程序并更新md5锁定文件。

因此,尝试尝试一下chmod 755 <wherever the provider is>,如果仍然无法使用,请使用指向插件目录terraform init-plugin-dir参数(您的提供程序应该已经在其中)了。