
Installation automation
Choose the right boundary for unattended installs, first-boot configuration, or a complete image that has already passed its boot checks.
Start with the execution boundary. Installer automation creates a new system. cloud-init configures an existing image. An image factory moves more work before release and can test the machine that will be shipped.
| Mechanism | Execution boundary | Choose it when |
|---|---|---|
| Ubuntu Autoinstall | Installs Ubuntu Server through Subiquity from a versioned YAML file. | You control Ubuntu installation media, storage, identity, and packages. |
| Debian Preseed | Answers debian-installer questions from initrd, local media, or a URL. | You need unattended Debian Installer behavior or maintain an existing preseed estate. |
| Fedora Kickstart | Drives Anaconda with commands, package selections, and script sections. | You install Fedora or RHEL-family systems through media or PXE. |
| cloud-init | Configures an existing image when an instance boots in a supported data source. | The base image already exists and each instance needs identity or site-specific setup. |
Write down the intended users, SSH policy, storage layout, packages, services, network listeners, update policy, and reboot behavior before choosing syntax. That contract gives a platform team one review surface while Ubuntu, Debian, and Fedora keep their native installer formats.
Finish with behavior checks. A valid YAML file or Kickstart file proves that a parser accepted the input. It does not prove the installed machine selected the right disk, acquired a network address, enabled SSH, or survived a restart. Boot the output and test those facts.
Usually no. cloud-init most often starts from an image that is already installed and applies instance configuration during boot. Autoinstall, Preseed, and Kickstart control an installer.
None of these installer formats is universal. Keep a distribution-neutral machine contract, then express it through the installer or image builder used by each target family.
Build an image when boot time must be short, package sources must be pinned before release, or acceptance evidence must travel with the artifact. Keep small site-specific values for first boot.
Compare project environments, containers, installers, and complete machine images.
Turn installer inputs into a machine contract with boot acceptance checks.
Build a bootable artifact from a prompt, repository, or reusable recipe.
Compare template-driven artifacts with a hosted build, boot, and test loop.
Use OpenFactory to turn the same requirements into a bootable, testable Linux system.