Terraform自定义提供程序 - 询问用户输入时出错

时间:2017-11-26 14:19:20

标签: terraform

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

我能够根据this视频和一些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 plan'。

现在我收到以下错误:

  

错误:询问用户输入时出错:发生了1个错误:   * provider.incapsula:fork / exec~ / .terraform.d / plugins / darwin_amd64 / terraform-provider-incapsula:permission denied

我尝试chmod到666并且选择了二进制文件,但没有运气,我仍然遇到同样的错误。

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

我将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:3)

提供者二进制文件需要执行权限,因此请尝试使用755而不是666.如果二进制文件不在$PATH的某个位置,则通常需要运行`terraform init -plugin-dir =。 terraform /插件/ darwin_amd64"所以terraform选择提供程序并更新md5锁定文件。

请尝试chmod 755 <wherever the provider is>,如果它仍然不起作用,请使用terraform init-plugin-dir参数指向插件目录(您的提供商应该已经在那里)。