首页 文章

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

提问于
浏览
1

我是terraform和golang的新手,我正在尝试为POC实现自定义提供程序,以检查我们是否可以利用terraform供我们自己使用 .

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

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

Terraform包安装在$ GOPATH / src / github / hashicorp中 .

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

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

然后将“go build”编辑到$ GOPATH / bin

一旦我尝试 'terraform plan' ,我得到以下内容:

provider.incapsula:没有合适的版本安装版本要求:“(任何版本)”版本安装:无

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

现在我收到以下错误:

错误:询问用户输入时出错:发生1个错误:* provider.incapsula:fork / exec~ / .terraform.d / plugins / darwin_amd64 / terraform-provider-incapsula:权限被拒绝

我试图chmod到666并且chown二进制文件,但没有运气,我仍然得到同样的错误 .

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

我将不胜感激任何帮助 .

谢谢!

1 回答

  • 1

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

    所以尝试 chmod 755 <wherever the provider is> 并且如果它仍然无效,请使用 terraform init ,其中 -plugin-dir 参数指向插件目录(您的提供者应该已经在那里) .

相关问题