如何使用 for_each 使用 terraform 创建多个不同名称、不同 CPU 和内存要求的 vsphere VM

How to create multiple vsphere VMs of different name, different CPUs and memory requirement using terraform using for_each

我有一个场景-

我必须为具有不同 cpus 和内存要求的不同用户提供多个 vsphere 虚拟机我正在尝试下面的代码但它失败了。

我的 terraform tfvars 看起来像 -

  example_users = name1 {
  hardware = {cpus = 8
    memory = 10
}
},
 name2= {
   hardware = { cpus =9
   memory = 8
} 
},

and so-on

main.tf=

    for_each = var.example_users 
    cpus = each.value.hardware.cpus
    memory = each.value.harware.memory 

有人可以帮忙吗

Terraform 正在寻找 key:value 对的地图,因此您可以稍微更新一下格式并可能具有功能配置。我也会删除嵌套的硬件映射,因为 Terraform 需要额外的逻辑来理解内部信息。

tfvars:

example_users = {
  name1 = {
    cpus   = 8
    memory = 10
  }
  name2 = {
    cpus   = 9
    memory = 8
  }
}

main.tf:

for_each = var.example_users 
cpus = each.value["cpus"]
memory = each.value["memory"]