【问题标题】:Excluding resources in Terraform在 Terraform 中排除资源
【发布时间】:2017-04-24 02:54:23
【问题描述】:

我想用 Terraform 定义的单个 us-east-2 VPC 中有一组 AWS 安全组。已经有很多手动配置的安全组了。

如果我使用新配置创建计划,是否会删除旧服务组?如果是这样,有没有办法排除现有资源?

【问题讨论】:

    标签: amazon-web-services terraform


    【解决方案1】:

    Terraform 尽一切可能尝试不干扰它无法管理的任何事情。通常这只会是 Terraform 已经创建并在其 state file 中创建的东西,但现在这也可以包含在 Terraform 之外创建的东西,然后将 imported 包含到状态文件中。

    如果您的资源具有某种形式的可由您自己配置的唯一标识符(例如 ELB 的名称),Terraform 将不会意识到存在问题并计划创建所述资源。在实际应用期间,提供者(例如 AWS)应该返回一个错误,说明资源已经存在,但这在技术上取决于提供者的 API,并且可能某些提供者可能会进行更新。在您的情况下,您使用的是 AWS,因此 AWS API 将返回一个错误,说明资源已存在。

    如果资源由您无法控制的事物(例如 EC2 实例和安全组)唯一标识,则 Terraform 将简单地创建更多该资源并简单地标记它们。

    因为 Terraform 标识了它的状态文件允许管理的东西,这就是为什么照顾这个状态文件并确保它始终可供任何人/任何将运行 Terraform 的东西使用,因此应该使用remote state 允许共享这些状态文件。

    【讨论】:

      猜你喜欢
      • 2019-04-11
      • 2020-03-27
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 2022-07-28
      • 2012-03-22
      • 2021-12-24
      • 1970-01-01
      相关资源
      最近更新 更多