Terraform Cloud で tfstate 管理をしてみた

main.tf に Terraform Cloud の組織とワークスペースを設定

下記の organization と workspaces は自分の環境にあわせて入力する。

$ terraform version
Terraform v1.3.9
on darwin_arm64

$ cat <<EOF > main.tf
terraform {
  cloud {
    organization = "minrst"
    workspaces {
      name = "mnrsdev"
    }
  }
}
EOF

$ terraform login

下記が表示されたらブラウザ上で作成したトークンを入力する。

Token for app.terraform.io:
  Enter a value:

terraform コマンドを実行して問題ない事を確認する。

$ terraform init

$ terraform apply

Terraform Cloud の Workspace 設定で実行モードをローカルに変更

下記の設定で tfstate の管理のみを Terraform Cloud に任せ、AWS のキーやシークレットを Terraform Cloud に登録しなくても実行できるようになる。

main.tf に AWS VPC を加える

terraform {
  cloud {
    organization = "minrst"
    workspaces {
      name = "mnrsdev"
    }
  }
}

provider "aws" {
  region = "ap-northeast-1"
}

resource "aws_vpc" "vpc-dev-001" {
  assign_generated_ipv6_cidr_block = "false"
  cidr_block                       = "10.0.0.0/16"
  enable_dns_hostnames             = "true"
  enable_dns_support               = "true"
  instance_tenancy                 = "default"
  tags = {
    "Name" = "vpc-dev-001"
  }
}

terraform コマンドを実行し AWS VPC を作成

$ terraform init

$ terraform plan

$ terraform fmt

$ terraform validate

$ terraform apply -auto-approve

terraform.tfstate がカレントディレクトリに無い事を確認

$ ls
main.tf

参考

https://developer.hashicorp.com/terraform/tutorials/aws-get-started/aws-remote

タグ: ,