代码之家  ›  专栏  ›  技术社区  ›  Manoj Acharya

创建多个aws ebs卷并使用terraform将其附加到实例

  •  0
  • Manoj Acharya  · 技术社区  · 8 年前

    我正在创建一个terraform配置,允许用户输入要附加到ec2实例的aws ebs卷的数量。

    variable "number_of_ebs" {}
    
    resource "aws_volume_attachment" "ebs_att" {
      count = "${var.number_of_ebs}"
      device_name= "/dev/sdh"
      volume_id   = "${element(aws_ebs_volume.newVolume.*.id, count.index)}"
      instance_id = "${aws_instance.web.id}"
    }
    
    resource "aws_instance" "web" {
      ami           = "ami-14c5486b"
      instance_type = "t2.micro"
      availability_zone = "us-east-1a"
      vpc_security_group_ids=["${aws_security_group.instance.id}"]
      key_name="KeyPairVirginia"
      tags {
        Name = "HelloWorld"
      }
    }
    
    resource "aws_ebs_volume" "newVolume" {
      count = "${var.number_of_ebs}"
      name  = "${format("vol-%02d", count.index + 1)}"
      availability_zone = "us-east-1a"
      size              = 4
      type="standard"
      tags {
        Name = "HelloWorld"
      }
    }
    

    它肯定是在犯错误。我不知道如何动态地为创建的每个卷分配不同的名称,并为实例的附加获取卷id。

    下面是我得到的错误。

      var.number_of_ebs
      Enter a value: 2
    
      Error: aws_ebs_volume.newVolume[0]: : invalid or unknown key: name
    
      Error: aws_ebs_volume.newVolume[1]: : invalid or unknown key: name
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Phil    8 年前

    如果你检查 docs 为资源 aws_ebs_volume ,你看这个论点 name 不支持。 这解释了错误消息。

    推荐文章