我对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
一旦我尝试'terraform plan',我得到以下信息:
provider.incapsula:没有安装合适的版本 版本要求:“(任何版本)” 安装版本:无
我在terraform.d/plugins中添加了自定义提供程序二进制文件,并尝试再次运行“terraform.d”。
现在,我得到了以下错误:
错误:请求用户输入的错误:1错误发生:* provider.incapsula:叉/exec provider.incapsula权限被拒绝
我尝试chmod到666和chown二进制文件,但没有运气,我仍然得到同样的错误。
我试图寻找这样的问题,但找不到任何参考。
如果有任何帮助,我将不胜感激。
谢谢!
发布于 2017-11-28 15:24:36
提供程序二进制程序需要执行权限,因此尝试使用755而不是666。另外,如果二进制文件不在您的$PATH中,通常需要运行`terraform init -plugin=. terraform /plugins/darwin_ and 64“,以便terraform获取提供程序并更新md5锁文件。
因此,尝试chmod 755 <wherever the provider is>,如果它仍然不起作用,使用terraform init并使用-plugin-dir参数指向插件目录(您的提供者应该已经在那里了)。
https://stackoverflow.com/questions/47497113
复制相似问题