Có cách nào để tách âm lượng EBS khỏi phiên bản EC2 hiện tại và đính kèm một âm lượng EBS mới bằng cách sử dụng Terraform v0.9.2
không?
Tôi thích thay thế âm lượng hơn là cố gắng phá hủy thể hiện và tạo một âm lượng mới với âm lượng mới.
Hệ thống tập tin được ngắt kết nối với thiết bị trong hệ điều hành trước khi tách âm lượng và cũng không có vấn đề gì khi tách âm lượng khỏi bảng điều khiển AWS.
resource "aws_ebs_volume" "create_volume" {
availability_zone = "eu-central-1a"
snapshot_id = "${data.aws_ebs_snapshot.mysql.id}"
type = "gp2"
tags {
Name = "${var.instance_name}"
}
}
resource "aws_volume_attachment" "mysql_data" {
depends_on = ["null_resource.stop_mysql_service2"]
device_name = "/dev/xvdf"
volume_id = "${aws_ebs_volume.create_volume.0.id}"
instance_id = "i-0d48be4266da"
skip_destroy = true
force_detach = true
}
$ ./terraform apply
data.aws_ebs_snapshot.mysql: Refreshing state...
aws_ebs_volume.create_volume: Creating...
availability_zone: "" => "eu-central-1a"
encrypted: "" => "<computed>"
iops: "" => "<computed>"
kms_key_id: "" => "<computed>"
size: "" => "<computed>"
snapshot_id: "" => "snap-0afb2303c60f"
tags.%: "" => "1"
tags.Name: "" => "mysql"
type: "" => "gp2"
aws_ebs_volume.create_volume: Still creating... (10s elapsed)
aws_ebs_volume.create_volume: Creation complete (ID: vol-04c7f4)
null_resource.stop_mysql_service2: Creating...
null_resource.stop_mysql_service2: Provisioning with 'remote-exec'...
null_resource.stop_mysql_service2 (remote-exec): Connecting to remote host via SSH...
null_resource.stop_mysql_service2 (remote-exec): Host: mysql
null_resource.stop_mysql_service2 (remote-exec): User: ubuntu
null_resource.stop_mysql_service2 (remote-exec): Password: false
null_resource.stop_mysql_service2 (remote-exec): Private key: true
null_resource.stop_mysql_service2 (remote-exec): SSH Agent: true
null_resource.stop_mysql_service2 (remote-exec): Connected!
null_resource.stop_mysql_service2 (remote-exec): .
null_resource.stop_mysql_service2 (remote-exec): .
null_resource.stop_mysql_service2 (remote-exec): .
null_resource.stop_mysql_service2 (remote-exec): .
null_resource.stop_mysql_service2 (remote-exec): .
null_resource.stop_mysql_service2 (remote-exec): .
null_resource.stop_mysql_service2 (remote-exec): .
null_resource.stop_mysql_service2: Still creating... (10s elapsed)
null_resource.stop_mysql_service2 (remote-exec): .
null_resource.stop_mysql_service2 (remote-exec): .
null_resource.stop_mysql_service2 (remote-exec): .
null_resource.stop_mysql_service2 (remote-exec): .
null_resource.stop_mysql_service2 (remote-exec): .
null_resource.stop_mysql_service2 (remote-exec): .
null_resource.stop_mysql_service2 (remote-exec): .
null_resource.stop_mysql_service2 (remote-exec): .
null_resource.stop_mysql_service2 (remote-exec): .
null_resource.stop_mysql_service2 (remote-exec): * Attempt to shutdown MySQL Community Server 5.6.35 timed out
null_resource.stop_mysql_service2: Still creating... (20s elapsed)
null_resource.stop_mysql_service2: Still creating... (30s elapsed)
null_resource.stop_mysql_service2: Creation complete (ID: 1850529311883)
aws_volume_attachment.mysql_data: Creating...
device_name: "" => "/dev/xvdf"
force_detach: "" => "true"
instance_id: "" => "i-0d48be4266da"
skip_destroy: "" => "true"
volume_id: "" => "vol-04c7f4"
aws_volume_attachment.mysql_data: Still creating... (10s elapsed)
Error applying plan:
1 error(s) occurred:
* aws_volume_attachment.mysql_data: 1 error(s) occurred:
* aws_volume_attachment.mysql_data: [WARN] Error attaching volume (vol-04c7f4) to instance (i-0d48be4266da),
message: "Invalid value '/dev/xvdf' for unixDevice. Attachment point /dev/xvdf is already in use", code: "InvalidParameterValue"
Terraform does not automatically rollback in the face of errors.
Instead, your Terraform state file has been partially updated with
any resources that successfully completed. Please address the error
above and apply again to incrementally change your infrastructure.