通过 Jenkins 部署到 AWS 时出现 Terraform 版本错误?



我通过 JenkinsTerraform v0.10.7 使用 terraform进行部署。 使用Terraform v0.11.1从我的本地机器成功部署后,我无法从 Jenkins 再次执行此操作,我有此错误:

Terraform doesn't allow running any operations against a state
that was written by a future Terraform version. The state is
reporting it is written by Terraform '0.11.1'.
  • 使用 v0.11.1 运行:$ terraform destroy
  • 删除.tfstate文件
  • 使用 v0.10.7(或从现在开始使用的任何版本(,运行:$ terraform apply

如果您使用的是 TFE,也许您可以重新排队之前使用 0.11.x 创建的状态。或者,也许您可以查看 Jenkins 历史记录以获取使用 0.11.x 创建的最后一个状态。

我的一位同事曼努埃尔·塞拉(Manuel Sierra(遇到了这个错误,并以以下解决方案得出结论: (请注意以下内容,如果您碰巧降级到与代码不兼容的另一个版本,它将给出版本错误(

在我们的例子中,从0.11.14降级到0.11.13没有产生任何错误。

  1. 执行terraform pull state > current.state
  2. 使用您执行的版本修改版本
  3. 执行terraform push state current.state

现在,您可以使用降级版本。

最新更新