Terraform добавляет существующую группу безопасности в новую группу автоматического масштабирования ec2 - PullRequest
0 голосов
/ 07 января 2020

Я хочу добавить существующую группу безопасности, определенную в VP C, в группу автоматического масштабирования EC2. Там не определен LB. В этом примере сейчас создается один экземпляр EC2.

Документация Terraform показывает, что это возможно для экземпляров EC2, использующих sg_attachment

resource "aws_network_interface_sg_attachment" "bastion" {
  security_group_id    = var.sg_id
  network_interface_id = aws_autoscaling_group.bastion.primary_network_interface_id
}

Но я получаю следующую ошибку, вероятно, потому что я использую Вместо этого автоматически масштабируется группы:

Ошибка: неподдерживаемый атрибут

в строке ...... \ modules \ ec2_auto_scaling_group \ bastion.tf 51, в ресурсе "aws_network_interface_sg_attachment" "bastion ": 51:
network_interface_id = aws_autoscaling_group.bastion.primary_network_interface_id

У этого объекта нет аргумента, вложенного блока или экспортированного атрибута с именем" primary_network_interface_id ".

Я видел вложение группы автоматического масштабирования - https://www.terraform.io/docs/providers/aws/r/autoscaling_attachment.html

Но это вообще не относится к группам безопасности.

Конечно - я мог бы неявно указать новую группу безопасности с все те же правила, или просто объявите экземпляр ec2. Но при создании группы автоматического масштабирования на консоли вы получаете возможность импортировать существующие группы безопасности. Поэтому я хотел бы думать, что у terraform есть эквивалент.

1 Ответ

0 голосов
/ 07 января 2020

Похоже, я пропустил предыдущие настройки:

resource "aws_launch_configuration" "bastion" {
  # Launch configuration can't be updated, (provisioning)
  # in order to update the resource will be destroyed and rebuilt

  name_prefix = var.bastion_name_prefix

  image_id = data.aws_ami.RHEL_77.id 
  instance_type = var.bastion_instance_type
  key_name = aws_key_pair.bastion.key_name
  associate_public_ip_address = true
  enable_monitoring = false
  security_groups = [var.vpc_main_sg_id,aws_security_group.bastion.id]

  lifecycle {
      create_before_destroy = true
  }
}

Добавление группы безопасности в aws_launch_configuration исправило проблему.

...