🦔

terraform plan/apply が終わらない

2022/07/03に公開

はじめに

この度 Terraform デビューをしました。
初学者がいろいろと試していたら terraform plan/apply が延々と終わらない事象に遭遇したので備忘録として残します。

環境

Terraform v1.0.9
on darwin_arm64
provider registry.terraform.io/hashicorp/google v4.5.0

やったこと

新しくCloud Storageを作成

  • tfファイルにstorage_bucketとstorge_bucket_objectの設定を追記
  • terraform planで差分確認 -> 🆗
  • terraform applyを実行 -> 成功🎉

やっぱりCloud Storageのnameを変更したい...

👩🏻‍💻「さっき作ったStorageを削除してapplyし直そう」

  • Google Cloudのコンソールから手動で削除
  • tfファイルでCloud Storageのnameを変えてterraform plan
  • Refreshing stateが以下の箇所でずっと止まったままで終わらなくなる(terraform applyも同様)
module.development-service.google_compute_global_forwarding_rule.lp_forwarding_rule: Refreshing state... [id=projects/dev-tspf/global/forwardingRules/lp-forwarding-rule]
module.development-service.google_container_node_pool.tspf-node-pool: Refreshing state... [id=projects/dev-tspf/locations/us-east1/clusters/tspf-cluster/nodePools/tspf-pool]

一向に終わる気配がないので^Cで強制終了

👩🏻‍💻 「^C してみよ」

  • 再度terraform apply
  • ロックがかかって実行できない
  • terraform force-unlock [ID]でロック解除
    (⚠️同時に他の作業者がいないことを確認してから実行しましょう⚠️)

何度やってもterraform plan/applyが途中で止まるためログを出してみる

export TF_LOG=TRACE
export TF_LOG_PATH='./terraform.log' 
terraform plan

以下のようなログが吐き出されていた

---[ RESPONSE ]--------------------------------------
HTTP/2.0 404 Not Found
Content-Length: 171
Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"

(中略)

{
 "error": {
  "code": 404,
  "message": "The specified bucket does not exist.",
  "errors": [
   {
    "message": "The specified bucket does not exist.",
    "domain": "global",
    "reason": "notFound"
   }
  ]
 }
}

どうやら不要なものが残ってしまっているらしい

不要なstateを削除

  • terraform state listでstateの一覧を確認 -> nameを変える前のstorage_bucketやstorage_objectが残っていた
  • terraform state rm [削除したいstate]で不要なものを削除
  • 再度terraform planを実行 -> 通った...😭

おわりに

こちらの記事に助けられました。ありがとうございます!
https://zenn.dev/jcc/articles/e6d2908f203e58

Discussion