☁️

Terraform Cloudのtfstateを修正する

2021/01/11に公開

はじめに

Terraform Cloudはリモート実行環境(Execution ModeでいうRemote)として使用している場合においてtfstateに差分が出てしまったときの対処法です。

よくあるパターンとしてはすでにapplyしたリソースをmodule化した場合などでしょうか。

参考

Migrating State from Local Terraform - Terraform Cloud and Terraform Enterprise - Terraform by HashiCorp

stateファイルを修正する

ローカルで修正するためにTerraformのインストールが必要です。

Terraform Cloudにあるstateファイルをコピペ or Downloadで手元のルートディレクトリの terraform.tfstate にコピーします。

terraform state mv などでstateファイルを修正します。

その後、tfファイルに以下を追記します。(organization, workspaceは自分自身の環境に合わせて設定してください)

terraform {
 backend "remote" {
    hostname = "app.terraform.io"
    organization = "example"

    workspaces {
      name = "example"
    }
  }
}

terraform login でログインしたあと terraform init してyesで上書きします。

対象のWorkspaceのStatesタブでNew stateとあれば成功です。

new_state

ちなみにGitHubにpushする必要はないので今回追記した内容やTerraform実行でできたファイルなどは破棄して問題ありません。

Discussion