How to build custom images
MAAS supports custom images built with Packer. These images allow you to deploy operating systems beyond the default Ubuntu set, and to customize Ubuntu images for your own environment.
You can build images for a wide variety of operating systems, including Linux distributions, VMware ESXi, and Windows. The official Packer MAAS repository contains the authoritative templates, build instructions, and upload commands.
Supported operating systems
The following operating systems already have working or in-progress templates in the Packer MAAS repository:
Family | Versions | Notes |
---|---|---|
Ubuntu | All current releases | Stable templates available |
RHEL | 7, 8, 9, 10 | Varying stability |
Rocky | 8, 9 | Community-supported |
SLES | 12, 15, 16 | |
Oracle Linux | 8, 9 | Alpha-stage support |
CentOS | 6, 7, 8, Stream 8/9 | Many versions now EOL |
Debian | 10, 11, 12, 13 | |
Fedora Server | 41, 42 | |
VMware ESXi | 6, 7, 8, 9 | |
Windows | 2016, 2019, 2022, 2025, 10, 11 | Evaluation ISOs recommended |
Note: Templates marked as EOL are for operating systems that no longer receive upstream support. They are not recommended for new deployments.
Key considerations
-
ISO images: Most non-Ubuntu templates require you to supply an ISO manually. Licensing restrictions prevent Packer from downloading these automatically.
-
Windows builds:
- Ubuntu 22.04+ is required to build Windows 11 images (for
swtpm
). - Evaluation ISOs usually work without a product key; Enterprise/Retail images may require a valid key at build time.
- Windows templates include Cloudbase-init and VirtIO drivers to ensure compatibility with MAAS.
- Ubuntu 22.04+ is required to build Windows 11 images (for
-
Networking: You may need to configure a build proxy if your environment requires one.
-
Upload: Each template’s README includes the correct
maas boot-resources create
command. Small differences in parameters (e.g.,filetype
) mean you should always copy from the template’s example.
Next steps
For full build instructions:
-
Clone the Packer MAAS repository.
-
Navigate to the template for your target operating system.
-
Follow the README in that template directory to:
- Check build prerequisites
- Customize installer configuration (e.g., Kickstart, autoinstall, YAML)
- Build the image
- Upload it to MAAS