はじめに

クラウドインテグレーション事業部の三木です。
GitHubへのpushをトリガーにTerraform Cloudでのplanまでを自動化させたくTerraform CloudとGitHub連携をしました。
Terraform Cloudでの操作を減らし、CI/CDを早く回したい方に読んでいただければと思います。

前提条件

以下の準備ができていることを前提に記事を書いています。

  • Terraform Cloudでorganizationを作成していること
  • GitHubにtfファイルをアップロードしているrepositoryがあること

Terraform CloudとGitHub連携

Terraform Cloudでworkspaceの作成

「+ New workspace」をクリックします。

「Version control workflow」をクリックします。

「GitHub」をクリックします(「Connect to a different VCS」からGitHub以外のGitプロバイダーを選ぶこともできます)。

前提条件にも記載したGitHubにtfファイルをアップロードしているrepositoryを選択します。

「Workspace Name」には任意の名前を入力し、「Create workspace」をクリックします。

作成したworkspaceの設定

作成したworkspaceをクリックします。

「Settings」をクリックします。

「General」と「Version Control」の設定を変更する必要があります。

Generalの設定

「General」で必ず設定しないといけない内容は「Terraform Working Directory」です。

「Terraform Working Directory」で設定する内容は、GitHub上に配置しているtfファイルのpathになります。
GitHubでtfファイルを配置しているpathの確認をします。

Version Controlの設定

「Version Control」で必ず設定しないといけない内容は「VCS branch」です。

「VCS branch」で設定する内容は、GitHub上のどのブランチを利用するかです。
GitHubでどのブランチを利用しているか確認します。

設定後の確認

実際にterraformがGitHubの内容を読み込むか確認します。
「Actions」から「Start new run」をクリックします。

「Start run」をクリックします。

作成予定の内容が表示されていれば、Terraform CloudとGitHubの連携は成功しています。

まとめ

今回は必要最低限の設定をしました。
Terraform CloudとGitHubの連携ですが、「General」にある「Apply Method」を「Auto apply」にすると、GitHubへのpushをトリガーにTerraform Cloudでのapplyまで自動化することもできます。

色々な設定ができるので興味のある方は試してください。