将 Terraform 中的远程状态迁移到另一个远程状态的方法

将 Terraform 中的 remote state 移动到另一个 remote state 的方法是什么?

问题

    Terraformであるremote stateにあるresourceやmoduleを別のremote stateに移動する時ってあると思います。tarraform state rm した後に、terraform import をしても良いけれども、terraform import はすべてのresourceに対応しているわけじゃないのでそんな時に使えたりします。

步骤

1. 将目标状态转移到本地

terraform state mv --state-out=local.tfstate \ 
                   module.sample module.sample

–state-out オプションで指定したpathにstateを出力する。

2. 前往目标状态的dir,并获取远程状态。

terraform state pull > remote.tfstate

terraform state pull でremote stateをcopyすることが出来るのでファイルに出力する

希望输出转移到本地的模块的状态,并输出。

 terraform state mv -state=local.tfstate \
                   --state-out=remote.tfstate \
                   module.sample module.sample 

-state オプションは指定したstateを元に読み込む、–state-out オプションはmvしたstateを出力して、既存のstate fileを指定すると差分をmergeして出力してくれる。

将修正后的state推送到远程state。

terraform state push remote.tfstate

terraform state push FILENAME は指定したファイルをremote stateに反映させることが出来る。

最后

    あれー?出来たような気がするんだけどなーと思いながらも、意外とやり方書いてあるのが見当たらなかった。
bannerAds