是否有使Terraform应用增量的选项?e、 g.非破坏性(类似于Azure ARM增量选项)

是否有使Terraform应用增量的选项?e、 g.非破坏性(类似于Azure ARM增量选项),terraform,Terraform,在Azure ARM中,我可以将基础设施作为代码,并使用增量部署,如果有人在ARM配置(例如,在ARM模板中删除一个VM)中指手画脚,它将不会执行删除操作(我们可以手动执行此操作,然后调整ARM模板) 在地形中有类似的选择吗?从stackoverflow的角度看,这并没有使这种方法对我们的操作使用有风险(但对内部环境/演示有好处) 是否有任何合适的方法可以降低Terraform的风险?e、 g.避免意外删除资源。我不知道您所说的“增量应用”是什么意思,但Terraform支持应用计划,所以您需要

在Azure ARM中,我可以将基础设施作为代码,并使用增量部署,如果有人在ARM配置(例如,在ARM模板中删除一个VM)中指手画脚,它将不会执行删除操作(我们可以手动执行此操作,然后调整ARM模板)

在地形中有类似的选择吗?从stackoverflow的角度看,这并没有使这种方法对我们的操作使用有风险(但对内部环境/演示有好处)


是否有任何合适的方法可以降低Terraform的风险?e、 g.避免意外删除资源。

我不知道您所说的“增量应用”是什么意思,但Terraform支持应用计划,所以您需要做的是:

terraform plan -out=plan
这将打印对基础结构所做的更改,并创建描述这些更改的文件
plan
。然后你就可以开枪了

terraform apply plan

只有在创建计划后基础结构的状态没有改变时,才会执行给定的计划。

不确定Azure ARM如何工作,但为了避免意外删除,您可以在所需资源/模块的生命周期块中使用prevent_destroy标志

防破坏(bool)-此标志提供额外的保护,防止 对给定资源的破坏。当设置为true时,任何 包含销毁此资源的计划将返回错误 信息