首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Terraform ebs体积

Terraform ebs体积
EN

Stack Overflow用户
提问于 2017-03-05 16:21:53
回答 2查看 14.6K关注 0票数 4

我是新的地形,已经创建了3个ec2实例,我已经创建了6个ebs卷。我们如何将两个ebs卷附加到这三个实例中的每一个?

代码语言:javascript
复制
#Create 6 EBS volumes and attach 2 per instance.
resource "aws_ebs_volume" "vertica_ebs" {
        count                           = "6"
        availability_zone               = "${var.availability_zone}"
        size                            = "500"
        type                            = "st1"

       }
    }

#Attach ebs volume
resource "aws_volume_attachment" "ebs_att" {
     count = "6"
volume {
     device_name = "/dev/sdf"
     volume_id = "[${element(aws_ebs_volume.vertica_ebs.*.id, count.index)}]"
}
volume{
     device_name = "/dev/sdg"
     volume_id = "[${element(aws_ebs_volume.vertica_ebs.*.id, count.index)}]"
}
     instance_id = "[${element(aws_instance.vertica1.*.id,count.index)}]"
}

错误:

  • aws_volume_attachment.ebs_att #2:"device_name":未设置必需字段
  • aws_volume_attachment.ebs_att #2:"volume_id":未设置必需字段
  • aws_volume_attachment.ebs_att #2::无效或未知密钥:卷
  • aws_volume_attachment.ebs_att #4:"device_name":未设置必需字段
  • aws_volume_attachment.ebs_att #4:"volume_id":未设置必需字段
  • aws_volume_attachment.ebs_att #4::无效或未知密钥:卷
  • aws_volume_attachment.ebs_att #3:"device_name":未设置必需字段
  • aws_volume_attachment.ebs_att #3:"volume_id":未设置必需字段
  • aws_volume_attachment.ebs_att #3::无效或未知密钥:卷
  • aws_volume_attachment.ebs_att #0:"volume_id":未设置必需字段
  • aws_volume_attachment.ebs_att #0:"device_name":未设置必需字段
  • aws_volume_attachment.ebs_att #0::无效或未知密钥:卷
  • aws_volume_attachment.ebs_att #1:"device_name":未设置必需字段
  • aws_volume_attachment.ebs_att #1:"volume_id":未设置必需字段
  • aws_volume_attachment.ebs_att #1::无效或未知密钥:卷
  • aws_volume_attachment.ebs_att #5:"volume_id":未设置必需字段
  • aws_volume_attachment.ebs_att #5:"device_name":未设置必需字段
  • aws_volume_attachment.ebs_att #5::无效或未知密钥:卷
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-28 20:56:05

注意:此方法将破坏并重新创建服务器。如果这是不可接受的,请使用“'aws体积附件”方法

解决这个问题的一种方法是将ebs卷直接附加到实例资源上,以及如何解决这个问题。

您可以通过在每个服务器配置中添加一个'ebs_block_device‘元素,然后运行terraform apply来做到这一点。例如,您希望向其中添加2个ebs块设备的每个服务器资源如下所示:

代码语言:javascript
复制
resource "aws_instance""example_instance"{
#INSTANCE CONFIGURATION VALUES  
    ebs_block_device{
      device_name = "/dev/sdf"
      volume_size = 500
      volume_type = "st1"
    }
    ebs_block_device{
      device_name = "/dev/sdg"
      volume_size = 500
      volume_type = "st1"
    }
}

然后运行terraform plan,确保将块设备添加到服务器和服务器。使用此方法,服务器将被销毁并重新创建。如果这是可以接受的,请运行terraform apply以使用附加卷重新构建服务器。

这里的例子。

票数 6
EN

Stack Overflow用户

发布于 2017-05-18 20:00:03

我将以这种格式做一些事情:

代码语言:javascript
复制
resource "aws_instance" "example" {
  ami           = "${lookup(var.AMIS, var.AWS_REGION)}"
  instance_type = "t2.micro"

}

resource "aws_ebs_volume" "ebs-volume-1" {
    availability_zone = "eu-west-1a"
    size = 500
    type = "st1"
    tags {
        Name = "more volume"
    }
}

resource "aws_ebs_volume" "ebs-volume-2" {
    availability_zone = "eu-west-1a"
    size = 500
    type = "st1"
    tags {
        Name = "more volume"
    }
}

resource "aws_volume_attachment" "ebs-volume-1-attachment" {
  device_name = "/dev/sdf"
  volume_id = "${aws_ebs_volume.ebs-volume-1.id}"
  instance_id = "${aws_instance.example.id}"
}

resource "aws_volume_attachment" "ebs-volume-2-attachment" {
  device_name = "/dev/sdg"
  volume_id = "${aws_ebs_volume.ebs-volume-2.id}"
  instance_id = "${aws_instance.example.id}"
}

我希望这能帮上忙

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42610807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档