Terraform Cloud導入してみたので使い方のご紹介です。
構成図
GitHubと連携できるので以下のような構成で試しました。プルリクでplan、masterへのmergeでapplyという動作です。GitHubとTerraform Cloudは親和性が高いのでこの環境を簡単に構築することができました。
1.Workspaceの作成
①Coose Type:Version control workflowを選択
②Connect to VCS:GitHubと連携
③Coose a repository:リポジトリの選択(先にGitHubで作っておきましょう)
④Configure settings:Workspace等の入力
2.Variablesの設定
AWSのクレデンシャルを埋め込みます。クレデンシャルなので取扱注意しましょう。私は私用のアカウントで2要素認証にしてからやりました。Variablesから画像の赤枠にアクセスキーとシークレットキーを入力します。
3.自動applyの設定
冒頭で記述したプルリクでplan、mergeでapplyが動くように設定します。General SettignsからAuto applyを選択します。
4.プルリクとmergeしてみる
AWS上にtest-vpcを作成します。
variable "aws_access_key" {}
variable "aws_secret_key" {}
provider "aws" {
access_key = var.aws_access_key
secret_key = var.aws_secret_key
region = "ap-northeast-1"
}
resource "aws_vpc" "test-vpc" {
cidr_block = "10.0.0.0/16"
tags = {
Name = "test-vpc"
}
}
※コードは下記記事より拝借しております
https://qiita.com/boccham/items/190f04bfbc9ffc0b5baf
以上です。削除もDestruction and Deletionからさくっとできます。もちろんstateもTerraform Cloud上で管理されます。Terraform CloudはTerraform界にも浸透しつつあるようなので、今後のスタンダードになっていきそうですね。
※参考記事
https://dev.classmethod.jp/articles/terraform-cloud/
https://qiita.com/boccham/items/190f04bfbc9ffc0b5baf
https://zenn.dev/isosa/articles/ca44f2efbfe36b