Help us understand the problem. What is going on with this article?

Terraform Cloudでディレクトリに対してworkspaceをつくる

はじめに

Terraform CloudはStateファイルをTerraform Cloud上で管理してくれる最強のツールです。

強いところや基本的な使い方は以下の記事を参考にしてください。

本題

一つのリポジトリで複数のstateを管理することがあるのですが、Terraformではそれをworkspaceという単位で分けます。

イメージ
.
└── services
    ├── common # workspace ここで一つのtfstateを管理する
    │   └── main.tf
    ├── prod # workspace ここで一つのtfstateを管理する
    │   └── main.tf
    ├── stage # workspace ここで一つのtfstateを管理する
    │   └── main.tf
    └── test # workspace ここで一つのtfstateを管理する
        └── main.tf

例えば、commonにはネットワーク周りの共通の構成管理を入れておき、最初にterraform applyしておくことで、コードを改修するたびにapplyされるのを回避することができます。

Terraform Cloudでもその設定を簡単に行うことができます。

image.png

Workspaceを作る際に、リポジトリルートからのpathをTerraform Working Directoryに指定してあげるだけです。

また、Terraform CloudはCIと連携できるのですが、そのトリガーとしてリポジトリの変更だけでなくそのpath以下の変更に絞ることもできます。(Automatic Run Triggering

workspace作成後でも「Settings→General」から変更することができます。
image.png

別のworkspaceのstateファイルからdataを取り出す際もnameを指定してあげるだけで簡単にできます。

data "terraform_remote_state" "foo" {
  backend = "remote"

  config = {
    organization = "hikimochi"

    workspaces = {
      name = "hikimochi-terraform-other-workspace"
    }
  }
}

また、Terraform Cloud上で管理されていればbackendの指定をしなくても自動でstateファイルがそのworkspace上で保存されます。(違ってたら指摘してください)

COOLですね。

おわりに

22日に結構頑張って書いたやつが、全然いいねつかないのでもう一本書きました。

mochio
lifull
日本最大級の不動産・住宅情報サイト「LIFULL HOME'S」を始め、人々の生活に寄り添う様々な情報サービス事業を展開しています。
https://lifull.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした