data "vsphere_datacenter" "dc" { name = var.vsphere_datacenter } data "vsphere_datastore" "datastore" { name = var.vsphere_datastore datacenter_id = data.vsphere_datacenter.dc.id } data "vsphere_compute_cluster" "cluster" { name = var.vsphere_cluster datacenter_id = data.vsphere_datacenter.dc.id } data "vsphere_network" "network" { name = var.vsphere_network datacenter_id = data.vsphere_datacenter.dc.id } data "vsphere_virtual_machine" "template" { name = var.vm_template datacenter_id = data.vsphere_datacenter.dc.id } resource "vsphere_virtual_machine" "vm" { name = var.vm_name resource_pool_id = data.vsphere_compute_cluster.cluster.resource_pool_id datastore_id = data.vsphere_datastore.datastore.id num_cpus = var.vm_cpu memory = var.vm_ram guest_id = data.vsphere_virtual_machine.template.guest_id cpu_hot_add_enabled = true memory_hot_add_enabled = true network_interface { network_id = data.vsphere_network.network.id adapter_type = data.vsphere_virtual_machine.template.network_interface_types[0] } disk { label = "disk0" size = var.vm_disk_size thin_provisioned = data.vsphere_virtual_machine.template.disks[0].thin_provisioned } clone { template_uuid = data.vsphere_virtual_machine.template.id customize { windows_options { computer_name = var.vm_name admin_password = var.admin_password } network_interface { ipv4_address = var.vm_ip ipv4_netmask = var.vm_netmask } ipv4_gateway = var.vm_gateway dns_server_list = [var.primary_dns] } } }