Terraform AWS:使用aws_launch_template和block_device_mappings覆盖根设备大小

时间:2018-10-18 13:44:58

标签: amazon-ec2 terraform

我没有找到一种方法来使用 aws_launch_template 中的 block_device_mappings 与Terraform AWS覆盖根大小设备。

我知道我可以指定一个额外的卷大小,例如:

as.numeric(str_extract(rs, "[0-9]+"))
as.numeric(str_extract(rs, "[0-9]+")[[1]])
as.numeric(str_extract(rs, "(?<=\\()[0-9]+(?=\\))"))
as.numeric(sapply(strsplit(rs, " "), "[[", 1))

但是我在VM中获得了具有这些规格的新磁盘。 但是我要做的是调整根磁盘的大小。

您能帮我弄清楚怎么做吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

block_device_mappings 用于其他bock设备。

您必须知道安装根设备的设备。例如,对于centos 7 AMI,它是/dev/sda1

resource "aws_launch_template" "foobar" {
  name_prefix   = "foobar"
  image_id      = "ami-9887c6e7"
  instance_type = "t2.micro"
  block_device_mappings {
    device_name = "/dev/sda1"

    ebs {
      volume_size = 40
    }
  }
}

resource "aws_autoscaling_group" "bar" {
  availability_zones = ["us-east-1a"]
  desired_capacity   = 1
  max_size           = 1
  min_size           = 1

  launch_template = {
    id      = "${aws_launch_template.foobar.id}"
    version = "$$Latest"
  }
}

但是请记住,terraform中卷大小的更新不会对正在运行的实例生效。因此,您将不得不替换实例以增加卷大小。