从自定义AMI创建ec2实例时提供不同的卷标签

时间:2019-01-07 09:57:07

标签: json amazon-web-services amazon-ec2 terraform ami

我正在使用具有2个卷的自定义AMI创建ec2-instance。我想给像

这样的两个卷分别命名/标记

vol-lab-cam-web-aue1-sda1到根卷,然后 使用terraform将vol-lab-cam-web-aue1-sdb移至其他卷。

我只能在terraform文档中看到volume_tags选项。有没有解决办法做到这一点? 我的示例代码如下

resource "aws_instance" "web" {
ami           = "ami-0e6f18d5546ceec3d"
instance_type = "t2.micro"
volume_tags = {
  Name = "vol-lab-cam-web01-aue1a-sda1"
  }

tags = {
  Name = "HelloWorld"
  }
}

以下是我使用此屏幕截图 sdb

sda1

2 个答案:

答案 0 :(得分:0)

由于volume_tags被统一应用于启动时创建的所有设备,因此请勿将其用于特定于设备的值。而是使用aws_ebs_volume资源创建sdb卷,并使用aws_volume_attachment资源将其附加到实例。

aws_ebs_volume代码中,可以为 Name 值输入“ vol-lab-cam-web-aue1-sdb”。

答案 1 :(得分:0)

就像KLH说的那样,如果您在Terraform中创建2个卷:

resource "aws_ebs_volume" "drivea" {
  availability_zone = "${var.availability_zone}"
  size              = 40

  tags = {
    Name = "HelloWorld"
  }
}

resource "aws_ebs_volume" "driveb" {
  availability_zone = "${var.availability_zone}"
  size              = 40

  tags = {
    Name = "WhaleTail"
  }
}

因此,然后将它们附加到您的实例:

resource "aws_volume_attachment" "ebsa" {
  device_name = "/dev/sdh"
  volume_id   = "${aws_ebs_volume.drivea.id}"
  instance_id = "${aws_instance.web.id}"
}

resource "aws_volume_attachment" "ebsb" {
  device_name = "/dev/sdi"
  volume_id   = "${aws_ebs_volume.driveb.id}"
  instance_id = "${aws_instance.web.id}"
}

您将有2个具有不同标签的磁盘连接到实例。 然后,如果您在AWS控制台中查看,则会看到带有不同标签的不同卷。