如何解决如何修复Terraform远程状态和本地状态不匹配 其他说明
我的队友正在使用terraform v0.12.28,我开始与他合作,但是我正在使用v0.13.x并进行了一些更改,我们使用存储在GCS存储桶中的状态文件。
现在我的队友要求我降级,因为他已经编写了一些与v0.12.28兼容的模块,我确实降级了我的版本,但是远程状态仍处于v0.13.x。
现在,我们被更高版本的远程状态所困扰。 解决此问题的最安全方法是什么? 我们处于起步阶段,因此我们可以销毁整个基础架构,但仍然想知道解决方法。
解决方法
如果您在后端存储桶中启用了版本控制,我建议
- 恢复该状态的旧版本,
- 修复所有差异(例如,从此版本开始导入创建的资源),并且
- 从那里开始正常工作。
不幸的是,这是一个手动过程,因此afaik并没有支持您将状态恢复为早期版本的terraform命令。
其他说明
对于未来,我的建议是:
- 确保在状态后端启用了版本控制
- 确保通过将其地形版本指定为约束来固定它。
例如通过创建versions.tf
:
terraform {
required_version = "0.12.28"
}
您还可以在此处固定提供程序版本(例如,如果出于任何原因需要使用AWS 2.x版本)
terraform {
required_version = "0.12.28"
required_providers {
aws = ">= 2.58,< 3.0"
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。