首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法从terraform 0.12中的模块输出访问列表的所有元素

无法从terraform 0.12中的模块输出访问列表的所有元素
EN

Stack Overflow用户
提问于 2019-09-26 02:11:26
回答 1查看 173关注 0票数 0

我无法使用模块输出将多个nics连接到单个虚拟机。似乎元素函数一次只能通过一个元素。有没有办法让我们只能从模块输出列表中调用特定的索引。Terraform v0.12.7

代码语言:javascript
复制
    # Virtual Machine module main.tf
    resource "azurerm_virtual_machine" "vm" {
      count                        = var.vm_instances_count
      name                         = "${var.vm_name}${format(var.count_format, var.count_offset + count.index + 1)}"
      location                     = var.location
      availability_set_id          = var.avset_id
      primary_network_interface_id = var.multi_nic == "true" ? var.primary_nic_id : null
      resource_group_name          = var.resource_group_name
      network_interface_ids        = [element(var.nic, count.index)]
      vm_size                      = var.vm_size
      ......
      }

    # environments/dev/main.tf (calling nic module)
    module "fw_nic" {
      source               = "../../nic"
      vm_name              = var.fw_vm_name
      location             = var.location
      resource_group_name  = module.resource_group.name
      vm_instances_count   = var.fw_vm_nic_count
      vnet_subnet_id       = module.fw_subnet.subnet_id[0]
      nsg_id               = module.fw_nsg.nsg_id[0]
      lb_enable            = "no"
      enable_ip_forwarding = "true"
      ......
    }

# environments/dev/main.tf (calling vm module)
module "fw_vm" {
  source              = "../../virtual_machines"
  vm_name             = var.fw_vm_name
  location            = var.location
  resource_group_name = module.resource_group.name
  vm_instances_count  = var.fw_vm_instances_count
  vm_size             = var.fw_vm_size
  admin_username      = var.fw_vm_admin_username
  admin_password      = var.fw_vm_admin_password
  nic                 = [module.fw_nic.nic_id]
  primary_nic_id      = module.fw_nic.nic_id[0]
  .....   
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-01 20:21:37

您应该能够直接使用逗号分隔的var.nic[0], var.nic[2],如下所示

代码语言:javascript
复制
    # Virtual Machine module main.tf
    resource "azurerm_virtual_machine" "vm" {
      count                        = var.vm_instances_count
      name                         = "${var.vm_name}${format(var.count_format, var.count_offset + count.index + 1)}"
      location                     = var.location
      availability_set_id          = var.avset_id
      primary_network_interface_id = var.multi_nic == "true" ? var.primary_nic_id : null
      resource_group_name          = var.resource_group_name
      network_interface_ids        = [var.nic[0], var.nic[2]]
      vm_size                      = var.vm_size
      ......
      }

希望这能有所帮助!

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

https://stackoverflow.com/questions/58104298

复制
相关文章

相似问题

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