In case the title was not descriptive enough, I was curious if I could build an Arm Virtual Appliance (OVA) using OVF properties that would allow for all sorts of interesting guest customizations which I have blogged about before here, here, here and here using x86 PhotonOS as a reference implementation. My idea for this actually pre-dated the release of the ESXi on Arm Fling, but it was only until recently with support for VMware Tools for Photon OS Arm, was I able to finally piece together this solution.
It was also neat to see that I could build an Arm OVA using x86 tooling (Packer and OVFTool) which ran on my desktop and you simply needed an ESXi-Arm host. This really goes to show the level of compatibility from a management and vSphere API point of view that an ESXi-Arm host behaves just like a standard x86 ESXi host!
and successfully deployed maybe the “1st” OVA on #ESXionARM?
Just confirmed all guest customization via OVF properties executed correctly! Will be publishing reference Packer image in case you wish to build your own pic.twitter.com/PiSpceXtFF
— William Lam (@lamw) October 15, 2020
To demonstrate a more interesting use case than just basic network customization for the ?first? Arm OVA, I thought it would be useful to setup a simple NFS appliance that would take input from the user such the size of the exported volume (default 60GB) and then the name of the mount point. Upon first boot up, there is a guest customization script that would read in the OVF properties and configure the networking, OS password and NFS server configuration which you can certainly use to host your Arm VMs.
Similar to my original Packer x86 Photon OS reference, you can also find the Packer Photon OS Arm NFS reference in the following Github repo and for those that want to try out the appliance, I have already pre-built it and you can download from the link below.
- Github for PhotonOS Arm NFS OVA: https://github.com/lamw/photonos-arm-nfs-appliance
- Try out PhotonOS Arm NFS OVA: PhotonOS_Arm_NFS_Appliance_0.1.0.ova
You can import the PhotonOS Arm OVA using either OVFTool (x86) or the vSphere UI, but you need to deploy to a vCenter Server endpoint OVF properties are only supported when using vCenter Server. After specifying the resources to deploy the OVA, you will see a set of OVF properties to enter the hostname and IP information as well as the root password which a user must provider, there is no default password.
The next section will allow you to specify the NFS server configuration. The first is the size of the NFS export, the default is 60GB but you can change that to anything that is greater than 1GB and the OVA will dynamically deploy that configure (just one of the really cool features of OVF using the Dynamic Disks capability). The second is simply the name of the NFS volume to export which will automatically be created for you on the Photon OS filesystem. You can either leave the default or give it a custom name but if you chose a custom name, when mounting the NFS volume, just know that it will be under /mnt/[volume-name]
- Github for PhotonOS x86 NFS OVA: https://github.com/lamw/photonos-nfs-appliance
- Try out PhotonOS x86 NFS OVA: PhotonOS_NFS_Appliance_0.1.0.ova