Terraform: как прочитать идентификатор тома одного экземпляра?

Я создаю экземпляры с CentOS 7 AMI по умолчанию. Этот AMI автоматически создает том и прикрепляет его к экземпляру. Можно ли прочитать этот идентификатор тома с помощью terraform? Я создаю экземпляр, используя следующий код:

resource "aws_instance" "DCOS-master3" {
    ami = "${var.aws_centos_ami}"
    availability_zone = "eu-west-1b"
    instance_type = "t2.medium"
    key_name = "${var.aws_key_name}"
    security_groups = ["${aws_security_group.bastion.id}"]
    associate_public_ip_address = true
    private_ip = "10.0.0.13"
    source_dest_check = false
    subnet_id = "${aws_subnet.eu-west-1b-public.id}"

    tags {
            Name = "master3"
        }
}

person Asier Gomez    schedule 16.03.2017    source источник


Ответы (2)


Вы не сможете извлечь данные EBS из aws_instance, так как это сторона AWS, которая предоставляет ресурсу том EBS.

Но вы можете определить EBS data source с некоторым фильтром.

data "aws_ebs_volume" "ebs_volume" {
  most_recent = true

  filter {
    name   = "attachment.instance-id"
    values = ["${aws_instance.DCOS-master3.id}"]
  }
}

output "ebs_volume_id" {
  value = "${data.aws_ebs_volume.ebs_volume.id}"
}

Вы можете указать фильтры EBS здесь: http://docs.aws.amazon.com/cli/latest/reference/ec2/describe-volumes.html

person Leon    schedule 17.03.2017

Вы можете: aws_instance.DCOS-master3.root_block_device.0.volume_id

Как описано в документах Terraform:

Для любых root_block_device и ebs_block_device экспортируется volume_id. например aws_instance.web.root_block_device.0.volume_id

person forzagreen    schedule 12.08.2019