Introduction
With the Image Builder tool, you can create customized system images. Image builder automatically handles the setup details for each output type and is therefore easier to use and faster to work with than manual methods of image creation. You can access the Image Builder functionalities by using the command-line interface, or the Web UI interface. With Image Builder, you can create system images that are prepared for deployment, including system images prepared for clouds, and also images optimized for deployment on edge servers.
This user guide refers primarily to the on premises version of Image Builder. While many of the concepts are transferable to the service.
Image Builder terminology
Image Builder uses the following concepts:
Blueprint
A blueprint is a description of a customized system image. It lists the packages and customizations that will be part of the system. You can edit blueprints with customizations and save them as a particular version. When you create a system image from a blueprint, the image is associated with the blueprint in the image builder interface. Create blueprints in the TOML format.
Compose
Composes are individual builds of a system image, based on a specific version of a particular blueprint. Compose as a term refers to the system image, the logs from its creation, inputs, metadata, and the process itself.
Customizations
Customizations are specifications for the image that are not packages. This includes users, groups, and SSH keys.
Image Builder output formats
Image Builder can create images in multiple output formats shown in the following table. Availability depends on the distribution; for the full per-distro catalog (including cloud RHUI/SAP/CVM variants and Fedora desktop/atomic types), see Image descriptions. Type names can differ by distribution (for example Fedora uses generic-vagrant-libvirt while RHEL/CentOS use vagrant-libvirt); always check image-builder list for the distro you are building.
Table 1. Image Builder output formats
| Name | CLI name | File extension | Description |
|---|---|---|---|
| QEMU Image | qcow2 | .qcow2 | QCOW2 formatted disk image for use with QEMU/Libvirt. |
| Disk Archive | tar | .tar | Archive of the root filesystem without any bootloader or partition table. |
| Amazon Machine Image | ami | .ami | Disk image for use with AWS EC2. |
| Microsoft Azure | vhd | .vhd | Disk image for use with Microsoft Azure. |
| Google Cloud Platform | gce | .tar.gz | Disk image for use with Google Cloud Platform. |
| VMware vSphere | vmdk | .vmdk | VMDK formatted disk image for use with VMware vSphere. |
| VMware vSphere | ova | .ova | OVA formatted disk image for use with VMware vSphere. |
| Openstack | openstack | .qcow2 | QCOW2 formatted disk image for use with OpenStack. |
| Edge/IoT1 Commit | edge-commit iot-commit | .tar | OSTree commit archive. |
| Edge/IoT1 Container | edge-container iot-container | .tar | Web server container that embeds and serves an ostree repository with the given single commit. |
| Edge/IoT1 Installer | edge-installer iot-installer | .iso | OSTree-based Anaconda installer ISO for deploying IoT images. |
| Edge/IoT1 Raw Image | edge-raw-image iot-raw-xz | .raw.xz | Compressed raw disk image for OSTree-based IoT devices. |
| Edge/IoT1 Simplified Installer | edge-simplified-installer iot-simplified-installer | .iso | OSTree-based installer ISO using coreos-installer for direct disk deployment using FIDO or ignition. |
| Edge AMI | edge-ami | .ami | OSTree-based Amazon Machine Image tailored for IoT deployments on AWS EC2. |
| Edge vSphere | edge-vsphere | .vmdk | OSTree-based VMDK formatted disk image for IoT deployments on VMware vSphere. |
| Image installer | image-installer | .iso | Anaconda ISO with an embedded pre-built OS archive. |
| Live installer | workstation-live-installer | .iso | Anaconda ISO with a live operating system. |
| Oracle Cloud Infrastructure Image | oci | .qcow2 | QCOW2 formatted disk image for use with Oracle Cloud. This is identical to the qcow2 image. |
| WSL | wsl | .wsl | Root filesystem archive for use with Windows Subsystem for Linux. |
| Minimal raw | minimal-raw minimal-raw-xz | .raw / .raw.xz | Raw disk image (optionally xz-compressed) for bare-metal or generic virtualization. |
| PXE | pxe-tar-xz | .tar.xz | Kernel, initramfs, and rootfs archive for network (PXE) boot. |
| Container | container container-minimal | .tar | OCI container image tarball. |
| Vagrant2 | vagrant-libvirt vagrant-virtualbox generic-vagrant-libvirt generic-vagrant-virtualbox | .box | Vagrant box for libvirt or VirtualBox. |
| Network installer | network-installer | .iso | Anaconda network install ISO. |
To check the supported types, run the command:
Using the image-builder CLI:
$ image-builder list
Using the composer-cli CLI:
$ composer-cli compose types
Footnotes
-
Edge is the variant for CentOS and RHEL, while it's called IoT on Fedora. Technically the output format is the same for both. ↩ ↩2 ↩3 ↩4 ↩5
-
RHEL, CentOS, and similar use
vagrant-libvirt/vagrant-virtualbox. Fedora's canonical names aregeneric-vagrant-libvirt/generic-vagrant-virtualbox(no short alias). ↩