如何在Terraform Cloud工作区回退到历史版本的Terraform状态文件
解决方案
你遇到的是Terraform Cloud工作区状态被错误覆盖的问题,无需逐个导入资源,直接通过Terraform Cloud自带的状态版本管理功能回退即可,具体操作步骤如下:
1. 下载目标历史状态文件
- 登录Terraform Cloud,进入对应工作区,点击左侧菜单栏的
States选项 - 在状态版本列表中找到10个月前的目标历史版本,点击版本右侧的下载按钮,将状态文件保存到本地项目根目录,命名为
history-state.tfstate
操作提示:建议同时下载当前的错误状态文件备份,避免后续需要回溯
2. 强制覆盖云端错误状态
确认本地已经完成Terraform Cloud认证、可以正常对接目标工作区后,在项目根目录执行以下命令,用下载的旧状态覆盖云端当前的错误状态:
terraform state push -force history-state.tfstate
3. 验证回退结果
执行terraform plan检查规划结果,此时会调用你刚推送的旧状态,不会再提示重建已存在的资源。如果出现资源属性漂移的提示,执行terraform refresh同步最新的云端资源属性到状态文件即可。
补充说明:你之前执行import报错和当前使用的状态无关,是资源ID填写错误、或资源所属订阅/区域与provider配置不匹配导致的,回退状态后无需再执行import操作。
内容的提问来源于stack exchange,提问作者bgarcial
相关产品推荐
相关产品推荐

