I wanted to provide some context: I'm using Packer to build an OVA file from an ISO in order to deploy a virtual machine in VCenter. However, I'm encountering an issue where the deployment leads to an endless reboot loop. Interestingly, deploying only the ISO works without any problems.
Could there be something missing in my Packer code? Any insights would be greatly appreciated. Thank you for your help and time
packer {
required_plugins {
vsphere = {
version = "~> 1"
source = "github.com/hashicorp/vsphere"
}
}
}
source "vsphere-iso" "vi-it-iotedge-kairos" {
vcenter_server = var.vcenter_server
username = var.vsphere_username
password = var.vsphere_password
insecure_connection = true
vm_name = "${var.vm_name}-iotedge-kairos"
cluster = var.vsphere_cluster
resource_pool = var.vsphere_resource_pool
datastore = var.vsphere_datastore
folder = var.vsphere_folder
vm_version = var.vm_hw_version
guest_os_type = "ubuntu64Guest"
boot_order = "disk,cdrom"
communicator = "ssh"
ssh_username = var.ssh_username
ssh_password = var.ssh_password
ssh_handshake_attempts = "100"
ssh_timeout = "30m"
CPUs = var.vm_numcpu
RAM = var.vm_memory
RAM_reserve_all = true
network_adapters {
network = "DPortGroup-Public"
network_card = "vmxnet3"
}
dynamic "storage" {
for_each = var.disks_hardened
content {
disk_size = storage.value
disk_thin_provisioned = true
}
}
disk_controller_type = ["pvscsi"]
iso_url = var.iso_url
iso_checksum = var.iso_checksum
export {
image_files = false
output_directory = "/tmp/vm-export"
}
remove_cdrom = true
}
build {
sources = [
"source.vsphere-iso.vi-it-iotedge-kairos"
]
provisioner "shell" {
inline = ["echo 'Completed template build'"]
}
post-processor "shell-local" {
only = ["vsphere-iso.vi-it-iotedge-kairos"]
inline = [
"pwsh -command \"& /workspace/source/buildscripts/ova/Update-OvfConfiguration.ps1 \\",
" -OVFFile '/tmp/vm-export/${var.vm_name}-iotedge-kairos.ovf' \\",
" -Role 'iotedge' \\",
" -Parameter @{'vi.release.name'='${var.vm_releasename}';'vi.release.version'='${var.vm_releaseversion}';'disksize_2'='${var.disks_hardened[1]}'}\"",
"pwsh -file /workspace/source/buildscripts/ova/Update-Manifest.ps1 \\",
" -ManifestFileName '/tmp/vm-export/${var.vm_name}-iotedge-kairos.mf'",
"ovftool --allowExtraConfig \\", " '/tmp/vm-export/${var.vm_name}-iotedge-kairos.ovf' \\",
"/workspace/build/container/vm/vi_it_srv_lin_ubuntu-vmtemplate-${var.vm_releaseversion}-iotedge-kairos.ova"
]
}
}