如何分解地形状态文件



我正在寻求如何最好地将地形状态文件分解为更小的状态文件的指导/建议。

我们目前为每个环境都有一个状态文件,它已经变得不可管理,所以我们现在希望每个地形模块都有一份状态文件,所以我们需要分离出当前的状态文件。

最好将其指向一个新的s3 bucket,然后运行一个计划并申请分解的模块,并为每个模块生成一个新状态文件,或者有更简单或更好的方法来实现这一点吗?

这一切都取决于您的环境是如何配置的,以及停机时间有多关键?

以下是我从你的问题中可以想到的两种一般情况。

第一种情况-(如果你能减少时间(

  1. 销毁您所获得的一切,从零开始,为每个模块定义单独的后端,并从那时起提供基础设施。因此,现在您可以进行后端隔离,基础设施管理变得更容易

第二种情况-(如果你不能减少时间(

  1. 假设您正在运行绝对不会占用任何停机时间的任务关键型工作负载
  2. 在这种情况下,您必须制定适当的计划,将巨大的单体后端迁移到较小的后端
  3. Terraform有一个名为terraform state mv的命令,它可以帮助您将一种地形状态迁移到另一种状态
  4. 当您处理场景时,从较低级别的环境开始,然后从那里开始工作
  5. 记下在较低级别环境中迁移过程中遇到的任何注意事项,同样的注意事项也适用于较高级别环境

一些有用的链接https://www.terraform.io/docs/cli/commands/state/mv.htmlhttps://www.terraform.io/docs/cli/commands/init.html#backend-初始化

尽管(截至目前(唯一的另一个答案只列出了两个选项-另一个选项是,您可以简单地制作地形repo(或文件夹,无论您如何处理您的基础设施(-然后执行terraform import,将现有的基础设施纳入这些(希望(repo。

一旦所有进口都被证明是成功的,你就可以删除原始回购/来源等。整体地形状态。

需要注意的是,每个新状态源的代码必须与现有代码和状态匹配,否则将失败。

相关内容

  • 没有找到相关文章

最新更新