MAAS 2.5 and above can deploy VMware ESXi as a custom image. MAAS cannot directly deploy the VMware ESXi ISO; you must create a specialised image from an official VMWare ISO. To automate the image creation process, Canonical hosts a repository with community-contributed packer templates.
This article will tell you:
- About the prerequisites for creating a VMWare image
- About the features and limitations of VMWare images in MAAS
- How to customise VMWare images
- How to build a VMWare image
- How to upload a VMWare image
The following are required in order to create and deploy a VMWare image:
- MAAS 2.5.0+
- A physical machine running Ubuntu 18.04+
- CPU: 4 2GHz cores
- Memory: 8 GB RAM (16 GB RAM recommended)
- Disk space: 11 GB
- The VMWare ESXi ISO
- Packer - https://www.packer.io/intro/getting-started/install.html
- Procedure was tested with precompiled 64-bit Packer 1.3.4 Linux binaries
- Packer template for MAAS custom image
The following apply to VMWare image creation, with respect to MAAS networking:
- VMware ESXi does not support Linux bridges
- Bonds - MAAS maps the following bond modes to VMware ESXi NIC team sharing with load balancing as follows:
- balance-rr - portid
- active-backup - explicit
- 802.3ad - iphash, LACP rate and XMIT hash policy settings are ignored.
- No other bond modes are currently supported.
- VMware ESXi does not allow VMs to use a PortGroup that has a VMK attached to it. All configured devices will have a VMK attached. To use a vSwitch with VMs, you must leave a device or alias unconfigured in MAAS.
Custom storage configuration is not supported because VMware ESXi expects specific disk formats. MAAS will extend datastore1 to the full size of the deployment disk. After deployment, VMware tools may be used to access the other disks.
VMware has very specific hardware requirements. In particular, running VMware ESXi is not supported in a virtual machine or MAAS virsh Pod.
The image may be customize by modifying packer-maas/vmware-esxi/http/vmware-esxi-ks.cfg see Installation and Upgrade Scripts in the VMware ESXi installation and Setup manual for more information.
Before an image is built the nbd kernel module must be loaded
sudo modprobe nbd
Once the nbd kernel module is loaded your current working directory must be in the packer-maas/vmware-esxi directory
You can now start the image building process using packer with the following command:
sudo packer build -var 'vmware_esxi_iso_path=/path/to/VMware-VMvisor-Installer-6.7.0-8169922.x86_64.iso' vmware-esxi.json
Once you have created the image, upload it to MAAS, using the CLI, with the following command:
maas $PROFILE boot-resources create name='esxi/6.7' title='VMware ESXi 6.7' architecture='amd64/generic' filetype='ddgz' content@=vmware-esxi.dd.gz