The VM template needs a few cloud-init tools installed before we can use it with cloud-init configs
apt install cloud-init cloud-initramfs-growroot
Cloud-init has a config file in /etc/cloud/cloud.cfg
With growroot installed in the initramfs, cloud-init will expand partitions and filesystems to fit the root partition given.
This cloud config snippet sets the machine hostname to the VM name.
#cloud-config
hostname: {name}
The network config is a special config file with cloud-init that focuses on specifying network settings.
The snippet below sets a static ip address for the specified interface.
Its syntax mainly follows the /etc/network/interfaces
syntax.
network:
version: 1
config:
- type: physical
name: [INTERFACE]
subnets:
- type: static
address: [ADDRESS]
gateway: [ADDRESS]
dns_nameservers: [ADDRESS]