さくらのクラウド向けプロバイダーなどのTerraformのコミュニティプロバイダーをGitHub Actionsで利用する際に独自のGitHub Actionsを作成しているケースを見かけました。
私が最近よく使っているhashicorp/setup-terraform
+terraform.d
配下にプロバイダーのバイナリーを置くという方法だとアクションを自作しなくても済むので今回紹介しておきます。
hashicorp/setup-terraform
+terraform.d
配下にプロバイダーのバイナリーを置く方法
こちらのリポジトリでさくらのクラウドプロバイダーを利用する例を公開しました。
Terraformで利用するtfファイル郡+GitHub Actionsとしてhashicorp/setup-terraform
を利用する構成になっています。
(注: この例ではstateの扱いを手抜きしてます。本番環境で利用する際はTerraform Cloudを使うなどの対応が必要です)
hashicorp/setup-terraform
HashiCorp社が公開しているGitHub Actionsです。
前述の記事ではhashicorp/terraform-github-actionsが参照されていましたが、こちらの後継がhashcorp/setup-terraform
です。
こちらの記事に新旧比較がありました。
hashicorp/setup-terraform
を利用すれば基本的なTerraformでの操作は行えそうですね。
コミュニティプロバイダーの配置
コミュニティプロバイダーは~/.terraform.d/plugins/
配下以外にもいくつか有効な置き場所があります。
特にワーキングディレクトリのterraform.d
配下に置く方法は
といった利点があります。Terraform Cloudなどでコミュニティプロバイダーを利用する場合もこの方法を利用しますね。
この2つを組み合わせることでGitHub Actionsでコミュニティープロバイダーを利用可能となります。
実行例: https://github.com/yamamoto-febc/terraform-github-action-test/runs/709137993?check_suite_focus=true
おまけ: Terraform v0.13以降では
こちらの記事のようにコミュニティプロバイダーがTerraform Registryに登録されていればプロバイダーのバイナリーをterraform.d
配下に置く必要もなくなります。
この辺も楽になりそうですね。
終わりに
ということでTerraform+GitHub Actionsでコミュニティープロバイダーを利用する方法について紹介しました。
コミュニティプロバイダーでも割と簡易な手順で利用できますので是非お試しください。
以上です。