簡體   English   中英

使用 AWS EC2_instance 模塊創建多個 EBS 卷

[英]Creating multiple EBS volumes using AWS EC2_instance module

計數索引在 ebs_block_device 中不起作用,關於如何使其起作用的任何建議? 這是我正在使用的代碼示例。 作為輸出,它只創建計數中的第一個驅動器。

module "ec2_instance" {
  source  = "terraform-aws-modules/ec2-instance/aws"
  version = "~> 3.0"

  count = "${var.count_ec2}"
  name = "${var.name}${count.index + 1 }"

  ami                    = var.ami
  instance_type          = var.instance_type
  key_name               = var.key_name
  monitoring             = true
  vpc_security_group_ids = [var.security_id]
  subnet_id              = var.subnet_id

  root_block_device = [
    {
      volume_type = var.root_drive_type
      volume_size = var.root_drive_size
      encrypted   = true
      kms_key_id  = var.kms_key
    }
]

  ebs_block_device = [
    {
      count       = "${var.count_drives}"
      device_name = "${element(var.ebs_devices_names, count.index)}"
      volume_type = var.ebs_drives_type
      volume_size = "${element(var.ebs_devices_size, count.index)}"
      encrypted   = true
      delete_on_termination = false
      kms_key_id  = var.kms_key

    },
]

count<\/code>是ebs_block_device<\/code>的無效參數。 如果要創建多個 ebs 卷,則必須使用for 循環<\/strong>將它們全部列出:

ebs_block_device = [for index in var.count_drives:
    {
      device_name = "${element(var.ebs_devices_names, index)}"
      volume_type = var.ebs_drives_type
      volume_size = "${element(var.ebs_devices_size, index)}"
      encrypted   = true
      delete_on_termination = false
      kms_key_id  = var.kms_key

    }
  ]

以下是為 ebs_block_device 設置循環的建議,如果添加的 ebs_block_device 等於或大於為 var.volume_count 配置的值,循環將停止。

dynamic "ebs_block_device" {
for_each = {
for k,v in var.id : k => v
if k < var.volume_count
}
content {
device_name = "/dev/sd${ebs_block_device.value}"
volume_type = var.volume_type
volume_size = var.volume_size
delete_on_termination = var.delete_on_termination
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM