不包括Terraform中的资源

时间:2017-04-23 06:38:08

标签: amazon-web-services terraform

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

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

1 个答案:

答案 0 :(得分:3)

Terraform尽一切可能不干扰任何不管理的事情。通常情况下,这只是Terraform创建并在state file中创建的内容,但现在也可以包含在Terraform之外创建的内容,然后imported内的状态文件。

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

如果资源是由您控制之外的东西唯一标识的(例如EC2实例和安全组),那么Terraform只会创建更多的资源并简单地标记它们。

因为Terraform通过其状态文件识别允许管理的内容,所以这就是为什么保护这个状态文件非常重要,并确保它始终可用于任何运行Terraform的任何人/任何东西,因此应该使用remote state允许共享这些状态文件。