首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >地形保障措施

地形保障措施
EN

Server Fault用户
提问于 2018-02-22 20:54:10
回答 3查看 135关注 0票数 1

我已经有数十个AWS实例在生产中运行,我希望开始使用Terraform来自动化下一个实例的创建。我读过Terraform可以帮助练习不变的模式。然而,我想避免任何风险,以摧毁任何已经运行的实例。Terraform是否提供任何保护以避免这种情况?

EN

回答 3

Server Fault用户

发布于 2018-02-22 21:06:11

是的-在任何手术前使用terraform plan。它将输出将要进行的更改的完整列表,实际上可以执行其中的任何更改,供您审阅。

票数 1
EN

Server Fault用户

发布于 2018-02-22 21:15:19

Terraform没有明确的保护措施,但是它的一般设计已经阻止了它接触现有的资源。

通常,每个Terraform资源都有一些主标识符(例如,对于EC2来说是一个实例ID,对于S3是一个桶名)。而且每个Terraform运行只应该:( a)创建新资源或( b)更新/删除Terraform控制下的现有资源。

  • 如果( a)如果ID已经存在,那么您将得到一个错误,Terraform无法创建任何东西( EC2永远不会发生,但S3存储桶是可能的)。这是修复Terraform代码的机会。
  • 在第二种情况下,Terraform应该只使用“自己的”资源,而不使用您帐户的现有内容。

人们可以故意(或不小心)通过替换/重命名Terraform的资源来干扰Terraform,这将破坏事物;但是,对于“正常”的使用,我从来没有见过这样的问题。

票数 1
EN

Server Fault用户

发布于 2018-03-08 14:43:17

可以向资源(参见Terraform资源配置)添加生命周期配置块;具体而言,可以使用:

代码语言:javascript
复制
lifecycle {
    prevent_destroy = true
}

当计划包含对资源的破坏操作时,这将返回错误消息。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/898477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档