如何使用 Terraform 删除 AWS 实例卷
How to remove an AWS Instance volume using Terraform
我使用自动在 AWS 上创建卷的 AMI 部署 CentOS 7,因此当我使用下一个 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"
}
}
如果EBS被保护,你需要先在控制台上手动移除终止保护,然后你才能销毁它
我添加下一个代码以获取有关 EBS 卷的信息并获取其 ID:
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 卷 ID 导入到 terraform 计划中:
terraform import aws_ebs_volume.data volume-ID
最后,当我 运行 terraform destroy
所有实例和卷都被销毁时。
我使用自动在 AWS 上创建卷的 AMI 部署 CentOS 7,因此当我使用下一个 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"
}
}
如果EBS被保护,你需要先在控制台上手动移除终止保护,然后你才能销毁它
我添加下一个代码以获取有关 EBS 卷的信息并获取其 ID:
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 卷 ID 导入到 terraform 计划中:
terraform import aws_ebs_volume.data volume-ID
最后,当我 运行 terraform destroy
所有实例和卷都被销毁时。