The deployment of the OVA results in an endless reboot loop

21 Views Asked by At

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"
    ]
  }
}
0

There are 0 best solutions below