terraform plan 在使用 terraform import 导入安全组后想要销毁它们

terraform plan 在使用 terraform import 导入安全组后想要销毁它们

0.9.4 和 0.10.4 版本中出现了这个问题

我使用 Terraform 的导入命令导入了 AWS 安全组列表,如下所示:

terraform import aws_security_group.production_servers sg-xxxxxxx

当我做:

terraform plan aws_security_group.production_servers

一切都很好,但是当我制定一个总体计划时:

terraform plan

- aws_security_group_rule.load_balancer_1

- aws_security_group_rule.load_balancer_1-1

- aws_security_group_rule.load_balancer_1-2

- aws_security_group_rule.load_balancer_1-3

- aws_security_group_rule.production_servers

- aws_security_group_rule.production_servers-1

- aws_security_group_rule.production_servers-2

- aws_security_group_rule.production_servers-3

- aws_security_group_rule.production_services_access

- aws_security_group_rule.production_services_access-1

- aws_security_group_rule.production_services_access-2

一些aws_security_group_rule(保留在我的.tfstate文件中)将被删除。

aws_security_group我正在使用withingress和per 规则声明安全组egress。不确定是否要aws_security_group_rule因此声明这些。

不确定我遗漏了什么,如能得到任何指导我将不胜感激。

谢谢。

答案1

因此,网络 ACL 和安全组的导入如下所示

resource "aws_security_group" "production_servers" {}
resource "aws_security_group_rule" "production_servers-1" {}
resource "aws_security_group_rule" "production_servers" {}

您提到您已将所有规则都放在其中,aws_security_group这完全没问题。我更喜欢将它们放在外面,因为如果您更改规则,并且一组中有 10-15 条规则,则更易于阅读。

所以发生的事情是,terraform 写了一个没有规则的空白文件,并且在状态文件中aws_security_group有一堆外部文件,这与你的 TF 配置不同。aws_security_group_rule

因此,在计划中它会说我需要销毁它们,然后它会在资源本身中创建它们。

您可能会遇到没有安全组规则的小问题,但最终它会在应用时清除。只需查看您的计划,aws_security_group我敢打赌您的所有规则都列在其中

相关内容