Подключите существующие тома EBS для запуска конфигурации в Terraform

У меня есть 3 существующих тома EBS, которые я пытаюсь присоединить к экземплярам, ​​созданным с помощью групп автомасштабирования. Ниже приведен код Terraform о том, как определяются тома EBS:

Объемы EBS

resource "aws_ebs_volume" "volumes" {
  count             = "${(var.enable ? 1 : 0) * var.number_of_zones}"
  availability_zone = "${element(var.azs, count.index)}"
  size              = "${var.volume_size}"
  type              = "${var.volume_type}"

  lifecycle {
    ignore_changes = [
      "tags",
    ]
  }

  tags {
    Name = "${var.cluster_name}-${count.index + 1}"
  }
}

Я планирую сначала использовать утилиту импорта Terraform, чтобы управлять томами с помощью Terraform. Без этого импорта Terraform предполагает, что я пытаюсь создать новые тома EBS, которые мне не нужны.

Кроме того, я обнаружил этот ресурс aws_volume_attachment, чтобы прикрепить эти томов в экземпляры. Я изо всех сил пытаюсь определить, какое значение поместить в качестве instance_id в этот ресурс:

Приставка тома

resource "aws_volume_attachment" "volume_attachment" {
  count = length("${aws_ebs_volume.volumes.id}")
  device_name = "/dev/sdf"
  volume_id   = aws_ebs_volume.volumes.*.id
  instance_id = "instance_id_from_autoscaling_group"
}

Кроме того, в блоке конфигурации запуска есть блок ebs_volume_device, нужно ли мне что-то еще включать в этот блок? Любые советы по этому поводу были бы полезны, так как у меня проблемы.

ebs_block_device {
device_name = "/dev/sdf"
no_device   = true

}


person Dave Michaels    schedule 01.07.2021    source источник
comment
Как прошло? Все еще непонятно, что можно сделать?   -  person Marcin    schedule 06.07.2021


Ответы (1)


Я изо всех сил пытаюсь определить, какое значение поместить в качестве instance_id в этот ресурс

Если вы создаете ASG с помощью TF, у вас нет доступа к идентификаторам экземпляров. Причина в том, что ASG рассматривается как единое целое, а не как отдельные экземпляры.

Единственный способ получить идентификаторы экземпляров из созданной ASG - использовать внешний ресурс данных или лямбда-функция источник.

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

person Marcin    schedule 02.07.2021