我已经有数十个AWS实例在生产中运行,我希望开始使用Terraform来自动化下一个实例的创建。我读过Terraform可以帮助练习不变的模式。然而,我想避免任何风险,以摧毁任何已经运行的实例。Terraform是否提供任何保护以避免这种情况?
发布于 2018-02-22 21:06:11
是的-在任何手术前使用terraform plan。它将输出将要进行的更改的完整列表,实际上可以执行其中的任何更改,供您审阅。
发布于 2018-02-22 21:15:19
Terraform没有明确的保护措施,但是它的一般设计已经阻止了它接触现有的资源。
通常,每个Terraform资源都有一些主标识符(例如,对于EC2来说是一个实例ID,对于S3是一个桶名)。而且每个Terraform运行只应该:( a)创建新资源或( b)更新/删除Terraform控制下的现有资源。
人们可以故意(或不小心)通过替换/重命名Terraform的资源来干扰Terraform,这将破坏事物;但是,对于“正常”的使用,我从来没有见过这样的问题。
发布于 2018-03-08 14:43:17
可以向资源(参见Terraform资源配置)添加生命周期配置块;具体而言,可以使用:
lifecycle {
prevent_destroy = true
}当计划包含对资源的破坏操作时,这将返回错误消息。
https://serverfault.com/questions/898477
复制相似问题