gpt4 book ai didi

Terraform 计划 : Saved plan is stale

转载 作者:行者123 更新时间:2023-12-05 06:55:28 26 4
gpt4 key购买 nike

我如何强制 Terraform 从头开始​​重建其计划和 tfstate 文件?

我正在考虑将我的 IAC 从 GCP 的 Deployment Manager 迁移到 Terraform,所以我想我应该运行一个测试,因为我的 TF 已经很生锈了。在第一关中,我成功部署了网络、子网、防火墙规则和计算实例。但它都在一个文件中,并且不能很好地扩展到多个环境。

我决定将它分解成模块(网络和计算),我完成了当天的实验,所以我用 terraform destroy 把所有东西都拆掉了

所以今天我将所有东西重构到它的模块中,不小心将网络资源从网络模块复制到计算模块。跑了terraform plan , 然后是 terraform apply ,它提示网络已经存在。

而且我认为那是因为我不知何故忽略了拆除我前一天晚上创建的网络?所以我跳到 GCP 控制台,是的,它就在那里,所以......我删除了它。在用户界面中。叹。我是我自己的混沌工程师。

无论如何,就在那附近的某个地方,我发现了我的重复资源并将其删除,意识到上述关于“网络资源已经存在”的提示来自要运行的第二个模块。

然后我运行了一个 terraform plan再次,它没有提示任何事情,所以我运行了一个 terraform apply ,那是我收到“陈旧计划”错误的时候。我已经尝试了我唯一能想到的 - terraform destroy , terraform refresh - 然后会尝试 planapply之后,

我可以从 tfstate/tfplan 文件上的新目录和新名称重新开始,但令我困扰的是我似乎无法调和这个“过时的计划”错误。三个问题:

  1. 呃……我做错了什么?除了在 2 小时的 session 后尝试编写好的代码之外?
  2. 现在这只是在胡闹,所以谁在乎是否所有东西都被炸毁了?我很高兴失去所有创建的资源。在这种情况下我有什么选择?
  3. 如果我最终要解决这个问题,显然幂等性是这里的优先事项,那么如果我需要执行一些灾难恢复,我有什么选择呢? (最终,我会使用远程状态来确保我们将 tfstate 文件放在安全的地方。

如果重要的话,我正在使用 Terraform 0.14.1。

最佳答案

Saved plan is stale 表示已过时。您的计划与基础架构的当前状态相匹配。要么基础设施在 terraform 之外发生了变化,要么在没有 -save 标志的情况下使用了 terraform apply

方法 1:要解决此问题,您可以使用 -out 标志运行 terraform plan 以保存新计划并重新应用稍后。

方法 2: 但更容易的是,我会使用 terraform refresh 然后 terraform apply

关于Terraform 计划 : Saved plan is stale,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65334115/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com