我对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,然后将二进制文件切成字符串,但没有运气,我仍然遇到相同的错误。
我试图寻找这种问题,但找不到任何参考。
我将不胜感激。
谢谢!
提供程序二进制文件需要执行权限,因此请尝试使用755而不是666。此外,如果二进制文件不在您的目录中$PATH,则通常需要运行terraform init -plugin-dir = .terraform / plugins / darwin_amd64“,以使terraform能够正常运行。提供程序并更新md5锁定文件。
因此,尝试尝试一下chmod 755 <wherever the provider is>,如果仍然无法使用,请使用指向插件目录terraform init的-plugin-dir参数(您的提供程序应该已经在其中)了。
| 归档时间: |
|
| 查看次数: |
2352 次 |
| 最近记录: |