By Andy Sayler
July 2026
- Ubuntu Server Version: 26.04 (previously tested with 20.04, 22.04)
- Default Username:
setup - Default Password:
setup - Default Encryption Key:
setup
- user-data-base: Basic autoinstall file that configures a server for SSH and used the default partition scheme.
- user-data-storage-btrfs: Builds on
user-data-basicto define a custom partition scheme for the first NVMe device on the system using the btrfa filesystem. - user-data-encrypted-btrfs: Builds on
user-data-storageto add LUKS full disk encryption to the partition scheme. NOTE: Please change the LUKS password after first boot. Default LUKS password is above. - user-data-encrypted-ext4: Same as the previous version, but using ext4 instead of btrfs. NOTE: Please change the LUKS password after first boot. Default LUKS password is above.
- user-data-encrypted-zfs-auto: Alternate to
user-data-encrypted-btrfsusing the guided ZFS layout with native ZFS encryption instead of manual LUKS partitioning. NOTE: Please change the encryption passphrase after first boot. Default passphrase is above. (UNTESTED) - user-data-encrypted-zfs-manual:
Same encrypted-ZFS scheme as the previous version, but built
from low-level
zpool/zfsstorage actions on a fixed partition layout instead of the guided layout. NOTE: Please change the encryption passphrase after first boot. Default passphrase is above. (UNTESTED)
- Customize appropriate
user-data-XXXXfile as needed - Build cloudinit iso:
cloud-localds ./autoinstall.iso ./user-data-XXXX ./meta-data - Mount both
autoinstall.isoand Ubuntu 26.04 server.iso (I tend to use the IPMI console to do this on headless servers, but doing it via VM commands or actual media on a physical server should all work as well.) - Boot system to Ubuntu server installer and select
yeswhen prompted to start autoinstall - Profit
- Generate Crypted Password:
openssl passwd -6
Every user-data-* file is checked on push/PR by a
GitHub Actions workflow that
runs Subiquity's own validate-autoinstall-user-data.py against it (see the
autoinstall validation howto).
This is not a local pre-commit check since the validator needs a full
Subiquity checkout and sudo apt-get install-ed dependencies.