【问题标题】:How to update Terraform state without apply changes如何在不应用更改的情况下更新 Terraform 状态
【发布时间】:2020-02-01 23:01:27
【问题描述】:

场景是:

  • 我有 1 个存储库,其中包含许多 terraform 文件,包括 IAM、Instances 等
  • 我必须将此存储库一分为二(IAM 配置将迁移到在另一个存储桶中存储 terraform 状态的另一个存储库)

所以我想更新这个新存储库的状态,添加 IAM 配置状态并从旧存储库中删除 IAM 状态,但我不想在我的基础架构中应用更改,因为我必须从旧存储库中删除所有配置并且然后重新创建。

有没有办法在不应用更改的情况下更新状态?

【问题讨论】:

标签: terraform


【解决方案1】:

最好的方法是创建新的存储库,每个存储库都保存新的状态文件。 假设从旧仓库创建的资源存储在名为“repo1.tfstate”的状态中。然后你创建一个新的 repo,你想要一些从 repo1 中分离出来的东西。然后,您可以使用 terraform import 将资源导入 repo2。不要忘记使用 terraform state rm 删除刚刚从 repo1 导入的资源。

另一种方法是执行 terraform state pull > state-for-repo-2.tfstate,手动编辑,将其放入 repo2 并执行 terraform state push。当然,您还必须编辑 repo1 的状态。但请注意,terraform 状态推送会覆盖原始状态文件...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多