Terraform
以下、GCP での例
参照資料
事前準備
- Google Cloud
- プロジェクトを作る
- サービスアカウントキーを作る
- IAM & Admin -> Service Accounts -> Create service account
- 名前は適当につける
- 権限は
Editor
にする - 作成後、JSON 形式のキーを生成してダウンロードする
- 使用する API を有効化しておく
- Web マスターセントラルの該当ドメインの確認済みサイト所有者に、作成したサービスアカウントのメールアドレスを追加しておく。
- これをしておかないと Google cloud storage にドメイン名を付したバケットを作ろうとした時に拒否される。
構成ファイルの基本
# Terraform Registryからどのプロバイダをダウンロードするか
terraform {
required_providers {
google = {
source = "hashicorp/google"
# Optional but recommended
version = "3.5.0"
}
}
}
# プロバイダはリソースを作成・管理する責任を負う
provider "google" {
credentials = file("goodmenu-dev-cf8aef4d27c0.json")
project = var.project
region = var.region
zone = var.zone
}
# リソースは`resource type`と`resource name`(名前は自由)からなる
# - Resource type の prefix (`google_`)はプロバイダを示す
# - resource IDは`google_compute_network.vpc_network`になる
resource "google_compute_network" "vpc_network" {
name = "terraform-network"
}
コマンド
terraform init # 一番最初にだけ実行
terraform plan # プランだけを見たい時
terraform apply
terraform destroy
terraform show # 現在の状態を見る
プランを事前に確定させて、後から実行したいとき
terraform plan -out some_plan
terrafrom apply some_plan