terraform动态块以创建vmware磁盘
我有以下资源代码摘录:terraform动态块以创建vmware磁盘,terraform,vmware,Terraform,Vmware,我有以下资源代码摘录: resource "vsphere_virtual_machine" "standalone" { resource_pool_id = data.vsphere_resource_pool.pool.id datastore_id = data.vsphere_datastore.datastore.id for_each = var.virtual_machines name = each.
resource "vsphere_virtual_machine" "standalone" {
resource_pool_id = data.vsphere_resource_pool.pool.id
datastore_id = data.vsphere_datastore.datastore.id
for_each = var.virtual_machines
name = each.value.name
memory = each.value.ram
num_cpus = each.value.logical_cpu
guest_id = "ubuntu64Guest"
network_interface {
network_id = data.vsphere_network.network.id
adapter_type = data.vsphere_virtual_machine.template.network_interface_types[0]
}
disk {
unit_number = 0
label = "OS"
size = each.value.disk0_size
eagerly_scrub = data.vsphere_virtual_machine.template.disks.0.eagerly_scrub
thin_provisioned = data.vsphere_virtual_machine.template.disks.0.thin_provisioned
}
dynamic "disk" {
for_each each.value.worker_node ? [1] : []
content {
unit_number = 1
label = "PX"
size = each.value.disk1_size
eagerly_scrub = data.vsphere_virtual_machine.template.disks.0.eagerly_scrub
thin_provisioned = data.vsphere_virtual_machine.template.disks.0.thin_provisioned
}
}
如果each.value.worker_节点为true,我想为VM创建第二个磁盘,但是当我运行terraform plan时,我得到:
Error: Invalid block definition
on main.tf line 68, in resource "vsphere_virtual_machine" "standalone":
68: for_each each.value.worker_node ? [1] : []
Either a quoted string block label or an opening brace ("{") is expected here.
很明显,我的代码中有错误,因为我无法理解它是什么。浏览互联网发现,我在for_后面缺少一个“=”,这是修复方法:
resource "vsphere_virtual_machine" "standalone" {
resource_pool_id = data.vsphere_resource_pool.pool.id
datastore_id = data.vsphere_datastore.datastore.id
for_each = var.virtual_machines
name = each.value.name
memory = each.value.ram
num_cpus = each.value.logical_cpu
guest_id = "ubuntu64Guest"
network_interface {
network_id = data.vsphere_network.network.id
adapter_type = data.vsphere_virtual_machine.template.network_interface_types[0]
}
disk {
unit_number = 0
label = "OS"
size = each.value.disk0_size
eagerly_scrub = data.vsphere_virtual_machine.template.disks.0.eagerly_scrub
thin_provisioned = data.vsphere_virtual_machine.template.disks.0.thin_provisioned
}
dynamic "disk" {
for_each = each.value.worker_node ? [1] : []
content {
unit_number = 1
label = "PX"
size = each.value.disk1_size
eagerly_scrub = data.vsphere_virtual_machine.template.disks.0.eagerly_scrub
thin_provisioned = data.vsphere_virtual_machine.template.disks.0.thin_provisioned
}
}