terraform-provider-awsを改造してbuildして手元で使う
今年もre:Inventすごかったですね。
AWS re:Invent 2017
At AWS re:Invent 2017, connect with peers and cloud experts, collaborate at our bootcamps, and learn how AWS can improve productivity, security and performance.
さて、「噂の新機能を試したいけど、terraform-provider-awsにまだアノ機能が無いよ(●`ε´●)!!!! 」 て時があると思います。
そこで、terraform-providers/terraform-provider-aws を改造し、buildして手元で使ってみました。
そのときの手順です。
まずお手元に terraform-providers/terraform-provider-aws をご用意ください。
terraform-providers/terraform-provider-aws
terraform-provider-aws - Terraform AWS provider
手順
1. 公式のbuild方法に従いbuildする
make build せい、と書いてあるので、make buildすれば良いです。
$ make build
==> Checking that code complies with gofmt requirements...
go install
2. 出来上がったバイナリを~/.terraform.d/pluginsの下に置く
私の場合は以下のようにコピーしたら読み込んでくれました。
$ cp $GOPATH/bin/terraform-provider-aws ~/.terraform.d/plugins
コピーした後に、利用したいterraformプロジェクトの中で $ terraform init
する必要があります。
【追記】
このとき .terraform/plugins/darwin_amd64/
の下に既存のpluginファイルがある場合は、それを消す必要がありました。
3.以上です…!!
以上でpluginが読み込まれると思います。
今思ったのですが、これawsのpluginに限った話じゃないかもしれません 🙊
小ネタ
ちなみに、本当に使われてるかどうかがわからなくなってしまった場合は、
lock.jsonというファイルの中身に、pluginバイナリのSHA256ダイジェストの値が入っているので、それを見ると良いっぽいです! 😊
$ cat .terraform/plugins/darwin_amd64/lock.json
{
"aws": "b983c8dba51a06bf55f991c6e53342eb1f83c0b96495a3e6a60da25595f09de1",
"template": "a7a55a3db915e673d43d09ca92b609481f90cdd19520cbd47633002e58fc2d02"
}%
$ shasum -a 256 ~/.terraform.d/plugins/terraform-provider-aws
b983c8dba51a06bf55f991c6e53342eb1f83c0b96495a3e6a60da25595f09de1
✎動作環境
$ go version
go version go1.9.2 darwin/amd64
$ terraform version
Terraform v0.11.0
✎まとめ
Go〜