Terraform 如何在不应用更改的情况下更新地形状态

Terraform 如何在不应用更改的情况下更新地形状态,terraform,Terraform,情况是: 我有一个包含许多地形文件的存储库,包括IAM、实例等 我必须将此存储库一分为二(IAM配置将迁移到另一个存储库,该存储库将地形状态存储在另一个存储桶中) 因此,我想更新此新存储库的状态添加IAM配置状态并从旧存储库中删除IAM状态,但我不想在我的基础结构中应用更改,因为我必须从旧存储库中删除所有配置,然后再次创建所有配置 有没有办法在不应用更改的情况下更新状态?最好的办法是创建新的存储库,每个存储库都保存新的状态文件。 假设从旧repo创建的资源存储在名为“repo1.tfstat

情况是:

  • 我有一个包含许多地形文件的存储库,包括IAM、实例等
  • 我必须将此存储库一分为二(IAM配置将迁移到另一个存储库,该存储库将地形状态存储在另一个存储桶中)
因此,我想更新此新存储库的状态添加IAM配置状态并从旧存储库中删除IAM状态,但我不想在我的基础结构中应用更改,因为我必须从旧存储库中删除所有配置,然后再次创建所有配置


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

最好的办法是创建新的存储库,每个存储库都保存新的状态文件。 假设从旧repo创建的资源存储在名为“repo1.tfstate”的状态中。然后你创建一个新的回购协议,在这里你想要从repo1中分割出一些东西。然后,您可以使用terraform导入将资源导入到repo2中。别忘了删除刚从具有terraform状态rm的repo1导入的资源


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

您好,您可以尝试。您可以结合使用
terraform import
terraform state rm