Как удалить том инстанса AWS с помощью Terraform

Я разворачиваю CentOS 7 с помощью AMI, который автоматически создает том в AWS, поэтому при удалении платформы с помощью следующих команд Terraform:

terraform plan -destroy -var-file terraform.tfvars -out terraform.tfplan
terraform apply terraform.tfplan 

Том не удаляется, потому что он был создан автоматически с помощью AMI, а terraform не создает его. Можно ли удалить с помощью terraform?

Мой экземпляр AWS создается с помощью следующего кода terraform:

resource "aws_instance" "DCOS-master1" {
    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.11"
    source_dest_check = false
    subnet_id = "${aws_subnet.eu-west-1b-public.id}"

    tags {
            Name = "master1"
        }
}

2 ответа

Решение

Я добавляю следующий код, чтобы получить информацию о томе EBS и взять его идентификатор:

data "aws_ebs_volume" "ebs_volume" {
  most_recent = true

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

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

Затем, имея идентификатор тома EBS, я импортирую его в план terraform, используя:

terraform import aws_ebs_volume.data volume-ID

Наконец, когда я бегу terraform destroy все экземпляры и тома уничтожены.

Если EBS защищен, вам нужно сначала удалить консольную защиту с консоли, а затем уничтожить ее.

Другие вопросы по тегам