Amazon ec2 Terraform AWS:使用AWS_启动_模板和块_设备_映射覆盖根设备大小

Amazon ec2 Terraform AWS:使用AWS_启动_模板和块_设备_映射覆盖根设备大小,amazon-ec2,terraform,Amazon Ec2,Terraform,我找不到使用terraform aws的aws\u启动\u模板中的块\u设备\u映射来覆盖根大小设备的方法 我知道我可以指定额外的卷大小,例如: block_device_mappings { device_name = "/dev/xvda" ebs { volume_size = "${var.frontend_kong_volume_size}" volume_type = "${var.frontend_kong_volum

我找不到使用terraform aws的aws\u启动\u模板中的块\u设备\u映射来覆盖根大小设备的方法

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

block_device_mappings {
        device_name = "/dev/xvda"
        ebs {
        volume_size = "${var.frontend_kong_volume_size}"
        volume_type = "${var.frontend_kong_volume_type}"
        delete_on_termination = "true"
        }
    }
但是我在虚拟机中得到了一个具有这些规格的新磁盘。 但是我想做的是调整根磁盘的大小

你能帮我想想怎么做吗


谢谢。

块设备映射用于其他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中卷大小的更新不会对正在运行的实例生效。因此,您必须更换实例以增加卷大小。

您使用的是哪种操作系统?在您的aws_autoscaling_组中,您可以使用aws_launch_模板或aws_launch_配置。注意:您必须指定launch_配置、launch_模板或混合_实例策略OP询问如何覆盖aws_launch_模板中的根设备大小,而不是aws_launch_配置中的根设备大小。@DmytroLeonenko您说得对,我对上一个terraform文档感到困惑,加上最常用的
aws\u自动校准组
以及'aws\u启动\u配置
。用我上次测试的
aws_launch_template`更新我的答案同样,我从未见过/dev/sda1作为Linux AMI中的根设备。它始终是/dev/xvda。请注意,sda1是一个分区名,而不是设备名。@DmytroLeonenko for Centos 7 ami来自上面的代码片段,它是
/dev/sda1
,您正确地认识到它是一个常见的分区名,但在特定的ami中,根设备设置如下所示。您可以运行terraform来检查它。