Initialize VMs in a vSphere private Cloud using Cloud-Init
Cloud-Init Datasource for VMware GuestInfo is deprecated
The Web is full of explanations, how to use „Cloud-Init Datasource for VMware GuestInfo“ but https://github.com/vmware-archive/cloud-init-vmware-guestinfo it is deprecated.
It is now integrated natively into Cloud-Init
Cloud-Init 21.3 has been released https://discourse.ubuntu.com/t/release-of-cloud-init-21-3/23857 which integrates this software.
New name:
- „DatasourceVMware“ https://github.com/canonical/cloud-init/pull/953,
- readthedocs https://cloudinit.readthedocs.io/en/latest/topics/datasources/vmware.html,
I’d expect it to be in the current Ubuntu 21.10 (Impish Indri) https://cloud-images.ubuntu.com/impish/current/ – the release notes for 21.10 don’t specify the exact version.
Ubuntu 20.04 (Focal Fossa) is still at cloud-init 20.1-10 according to https://wiki.ubuntu.com/FocalFossa/ReleaseNotes which is too old.
Prepare a VM-Template
Unfortunately Ubuntu provides the „cloud“-images in OVA-Format.
Create VM-Template from OVA
Deploy
- impish-server-cloudimg-amd64.ova
as
- VM
- keep all settings set to default
Customize VM
- disable (or remove) the „Serial“-port
- disable vApp-Properties
- those would break the cloud-init process later on
- VM=>Configure
- Settings=>vApp-Options
- disable [ ] vApp-Properties
Convert to Template
- VM-Template „ubuntu-impish-21.10-cloudimg“.
Clone a VM from this VM-Template
This shouldn’t be done manually, I’d suggest using terraform
Verify that Cloud-Init 21.3 is available and the „VMware“-Datasource is included
Cloud-Init Version
Release 21.3 is available:
ubuntu@ubuntu:~$ cloud-init --version
/usr/bin/cloud-init 21.3-1-g6803368d-0ubuntu3
Check the Cloud-Init Datasource
Datasource „vmware“ is included:
ubuntu@ubuntu:~$ cloud-id
vmware