如何强制 Terraform 从头开始重建其计划和 tfstate 文件?
我正在考虑将我的 IAC 从 GCP 的部署管理器迁移到 Terraform,所以我想我应该运行一个测试,因为我的 TF 已经生锈了。在第一遍中,我成功部署了网络、子网、防火墙规则和计算实例。但它全部都在一个文件中,并且不能很好地适应多个环境。
我决定将其分解为模块(网络和计算),并且我完成了当天的实验,因此我用terraform destroy
所以今天我将所有内容重构到其模块中,并意外地将网络资源从网络模块复制到计算模块。运行 a terraform plan,然后运行 a terraform apply,它抱怨网络已经存在。
我认为这是因为我不知何故忽略了拆除前一天晚上创建的网络?所以我跳到了 GCP 控制台,是的,它就在那里,所以......我删除了它。在用户界面中。叹。我是我自己的混沌工程师。
不管怎样,就在附近的某个地方,我发现了我的重复资源并将其删除,意识到上述关于“网络资源已存在”的抱怨来自要运行的第二个模块。
我terraform plan再次运行了 a ,它没有抱怨任何事情,所以我运行了 a terraform apply,就在那时我得到了“过时的计划”错误。我已经尝试了我能想到的唯一方法 - terraform destroy, terraform refresh- 然后会尝试plan,apply然后,
我可以从 tfstate/tfplan 文件上的新目录和新名称重新开始,但令我困扰的是我似乎无法调和这个“过时的计划”错误。三个问题:
我正在使用 Terraform 0.14.1,如果这很重要的话。