hello,
i use vsphere 2.11 module on my terraform server and it was integrated with vcenter version 8.0 for vm create processes.
when I create windows vm, it does not create as nic connected.
while preparing the template i marked nic connected in vcenter and i marked “Connect At Power On” option.
I installed latest vmtools to template.
i ran sysprep in with generalize option.
but still the vm was not created as connected. can anyone help?
here is my config files;
main.tf
provider "vsphere" {
vsphere_server = var.vsphere_server
user = var.vsphere_user
password = var.vsphere_password
allow_unverified_ssl = true
}
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.template_name
datacenter_id = data.vsphere_datacenter.dc.id
}
resource "vsphere_virtual_machine" "windows_vm1" {
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.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 = data.vsphere_virtual_machine.template.network_interface_types[0]
}
disk {
label = "${var.vm_name}-disk0"
size = var.disk1_size_gb
thin_provisioned = true
unit_number = 0
}
disk {
label = "${var.vm_name}-disk1"
size = var.disk2_size_gb
thin_provisioned = true
unit_number = 1
}
clone {
template_uuid = data.vsphere_virtual_machine.template.id
customize {
windows_options {
computer_name = var.vm_name
join_domain = "contoso.local"
domain_admin_user = "contoso.local\\domain.user"
domain_admin_password = var.domain_admin_password
time_zone = "110"
admin_password = var.admin_password
}
network_interface {
ipv4_address = var.ip_address
ipv4_netmask = var.netmask
}
ipv4_gateway = var.gateway
dns_server_list = var.dns_servers
}
}
depends_on = [data.vsphere_virtual_machine.template]
}
output "vm_ip" {
value = vsphere_virtual_machine.windows_vm1.default_ip_address
}
variables.tf
variable "vsphere_server" {
type = string
}
variable "vsphere_user" {
type = string
}
variable "vsphere_password" {
type = string
sensitive = true
}
variable "vsphere_datacenter" {
type = string
}
variable "vsphere_datastore" {
type = string
}
variable "vsphere_cluster" {
type = string
}
variable "vsphere_network" {
type = string
}
variable "template_name" {
type = string
}
variable "vm_name" {
type = string
}
variable "num_cpus" {
type = number
default = 2
}
variable "memory_mb" {
type = number
default = 4096
}
variable "disk1_size_gb" {
type = number
default = 50
}
variable "disk2_size_gb" {
type = number
default = 50
}
variable "ip_address" {
type = string
}
variable "netmask" {
type = string
default = "255.255.255.0"
}
variable "gateway" {
type = string
}
variable "dns_servers" {
type = list(string)
}
variable "admin_password" {
type = string
sensitive = true
}
variable "domain_admin_password" {
type = string
sensitive = true
}
terraform.tfvars
vsphere_server = "vcenter.contoso.local"
vsphere_user = "administrator@vsphere.local"
vsphere_password = "vCenterPassword"
vsphere_datacenter = "Contoso Datacenter"
vsphere_datastore = "Contoso-DataStore"
vsphere_cluster = "Contoso Cluster"
vsphere_network = "ContosoServerVLANs"
template_name = "Windows-Template"
num_cpus = 2
memory_mb = 4096
disk1_size_gb = 100
disk2_size_gb = 100
ip_address = "192.168.1.100"
netmask = "24"
gateway = "192.168.1.254"
vm_name = "Windows-TestVM01"
dns_servers = ["8.8.8.8", "8.8.4.4"]
admin_password = "LocalAdminPassword"
domain_admin_password = "DomainAdminPassword"