微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何修复Terraform远程状态和本地状态不匹配 其他说明

如何解决如何修复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 举报,一经查实,本站将立刻删除。