Error: timeout waiting for an available IP address

Hi Expert,

I am trying to deploy Windows VM on. VMware. VM is deployed successfully, the below customization is coded in the TF config and The “timeout waiting for an available IP address”. We have a free IP addr and it’s hard coded in varibal.tf , and copied the mail.tf file

I appreciate your help.

terraform {
required_providers {
vsphere = {
source = “hashicorp/vsphere”
version = “>= 2.0.0”
}
}
}

provider “vsphere” {
user = var.vsphere_user
password = var.vsphere_password
vsphere_server = var.vsphere_server
allow_unverified_ssl = true
}

data “vsphere_datacenter” “dc” {
name = var.datacenter
}

data “vsphere_datastore” “datastore” {
name = var.datastore
datacenter_id = data.vsphere_datacenter.dc.id
}

data “vsphere_compute_cluster” “cluster” {
name = var.cluster
datacenter_id = data.vsphere_datacenter.dc.id
}

data “vsphere_network” “network” {
name = var.network
datacenter_id = data.vsphere_datacenter.dc.id
}

data “vsphere_virtual_machine” “template” {
name = var.template
datacenter_id = data.vsphere_datacenter.dc.id
}

resource “vsphere_virtual_machine” “vm” {

Your existing configuration

provisioner “local-exec” {
command = “sleep 600” # Wait 10 minutes to ensure the VM gets an IP address
}
wait_for_guest_ip_timeout = 1800 # Adjust this timeout as needed
/*
lifecycle {
ignore_changes = [
clone[0].customize[0].network_interface[0].ipv4_address,
clone[0].customize[0].network_interface[0].ipv4.netmask,

]

}
*/
count = var.vm_count
name = “{var.vm_name_prefix}{format(”%03d", count.index + 1)}"
resource_pool_id = data.vsphere_compute_cluster.cluster.resource_pool_id
datastore_id = data.vsphere_datastore.datastore.id

num_cpus = var.num_cpus
memory = var.memory_mb
guest_id = data.vsphere_virtual_machine.template.guest_id

network_interface {
network_id   = data.vsphere_network.network.id
adapter_type = "vmxnet3"  # Use correct network adapter type

}

disk {
label = “disk0”
size = data.vsphere_virtual_machine.template.disks[0].size
eagerly_scrub = data.vsphere_virtual_machine.template.disks[0].eagerly_scrub
thin_provisioned = data.vsphere_virtual_machine.template.disks[0].thin_provisioned
}
disk {
label = “disk1”
size = data.vsphere_virtual_machine.template.disks[1].size
eagerly_scrub = data.vsphere_virtual_machine.template.disks[1].eagerly_scrub
thin_provisioned = data.vsphere_virtual_machine.template.disks[1].thin_provisioned
unit_number = 1
}
clone {
template_uuid = data.vsphere_virtual_machine.template.id

customize {
  windows_options {
    computer_name  = "${var.vm_name_prefix}-${count.index}"
    admin_password = var.admin_password
    time_zone      = var.time_zone
  }

  network_interface {
    ipv4_address = element(var.ipv4_addresses, count.index)
    ipv4_netmask = var.netmask
  }

  ipv4_gateway = var.gateway

  dns_server_list = var.dns_servers
 
}

}

firmware = “efi”
}

Regards
Renu


│ Error: timeout waiting for an available IP address
│ Error: timeout waiting for an available IP address


│ with vsphere_virtual_machine.vm[0],
│ with vsphere_virtual_machine.vm[0],
│ on main.tf line 41, in resource “vsphere_virtual_machine” “vm”:
│ 41: resource “vsphere_virtual_machine” “vm” {