更新状态以使将计划转换为模块更容易?

时间:2018-07-12 19:54:44

标签: terraform

我可以修改状态以说服terraform仅报告实际更改而不是范围更改吗?

目标

通过减少增量,轻松验证计划到模块的转换。

过程

  1. 根据计划创建模块
  2. 修改计划以使用传递所有必需变量的模块
  3. 运行terraform plan并期望没有变化

破坏者:计划中的所有项目均会随着范围的变化而销毁并重新创建。

- myplan.aws_autoscaling_group.foo
+ module.mymodule.aws_autoscaling_group.foo

可能的解决方案

如果我可以像在不更改基础结构的情况下运行应用程序那样更新状态,那么我可以运行一个计划,并且只查看实际基础结构与我的计划之间的差异,而无需更改范围。

terraform state list
for each item
     terraform state mv <oldval> module.mymodule.<oldval>

这可行,但是我正在从使用另一个模块的计划转向使用一个模块的模块,并且在该模块上的mv似乎不起作用。

terraform state mv module.ecs_cluster module.mymodule.ecs_cluster

Error moving state: Unexpected value for InstanceType field: "ecs_cluster"

Please ensure your addresses and state paths are valid. No
state was persisted. Your existing states are untouched.

0 个答案:

没有答案