Open1

AzureとTerraformの設定手順

Hiroki SAKABEHiroki SAKABE

Azureに対してterraform applyできるように設定する手順のメモ

前提

  • Azureアカウント作成済
  • Terraform Cloudアカウント作成済
  • Terraform Cloud利用
  • Terraform Cloudのworkspace作成済
  • ローカルからterraform apply

terraformコード

terraform {
  cloud {
    organization = "<organization名>"
    workspaces {
      name = "<workspace名>" 
    }
  }
  required_version = ">= 1.9.7"
}

provider "azurerm" {
  features {}
}

resource "azurerm_resource_group" "this" {
  name     = ...
}

環境変数

Terraform Cloudの環境変数に次を設定する

  • ARM_SUBSCRIPTION_ID # Azureポータルで確認できる
  • ARM_TENANT_ID # Azureポータルで確認できる
  • ARM_CLIENT_ID # 後述
  • ARM_CLIENT_SECRET # 後述

サービスプリンシパル

次のコマンドでサービスプリンシパルを作成する

az ad sp create-for-rbac --role="Owner" --scopes="/subscriptions/SUBSCRIPTION_ID"

コマンドの出力からARM_CLIENT_IDとARM_CLIENT_SECRETがわかる
詳しくは次の記事参照

https://qiita.com/duelist2020jp/items/c2b99ecfba2196ae65fc

作成したアプリは、Azureポータルのアプリの登録から確認できる

同じサービスプリンシパルで新たにARM_CLIENT_SECRETを発行したい場合も、Azureポータルから可

補足

環境変数を設定し忘れた場合、次のようなエラーとなる

`subscription_id` is a required provider property when performing a plan/apply operation

参考

https://qiita.com/tomohat/items/48779dd7c7e393a692ed

https://qiita.com/duelist2020jp/items/c2b99ecfba2196ae65fc