Skip to main content

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

NameCLI nameFile extensionDescription
QEMU Imageqcow2.qcow2QCOW2 formatted disk image for use with QEMU/Libvirt.
Disk Archivetar.tarArchive of the root filesystem without any bootloader or partition table.
Amazon Machine Imageami.amiDisk image for use with AWS EC2.
Microsoft Azurevhd.vhdDisk image for use with Microsoft Azure.
Google Cloud Platformgce.tar.gzDisk image for use with Google Cloud Platform.
VMware vSpherevmdk.vmdkVMDK formatted disk image for use with VMware vSphere.
VMware vSphereova.ovaOVA formatted disk image for use with VMware vSphere.
Openstackopenstack.qcow2QCOW2 formatted disk image for use with OpenStack.
Edge/IoT1 Commitedge-commit
iot-commit
.tarOSTree commit archive.
Edge/IoT1 Containeredge-container
iot-container
.tarWeb server container that embeds and serves an ostree repository with the given single commit.
Edge/IoT1 Installeredge-installer
iot-installer
.isoOSTree-based Anaconda installer ISO for deploying IoT images.
Edge/IoT1 Raw Imageedge-raw-image
iot-raw-xz
.raw.xzCompressed raw disk image for OSTree-based IoT devices.
Edge/IoT1 Simplified Installeredge-simplified-installer
iot-simplified-installer
.isoOSTree-based installer ISO using coreos-installer for direct disk deployment using FIDO or ignition.
Edge AMIedge-ami.amiOSTree-based Amazon Machine Image tailored for IoT deployments on AWS EC2.
Edge vSphereedge-vsphere.vmdkOSTree-based VMDK formatted disk image for IoT deployments on VMware vSphere.
Image installerimage-installer.isoAnaconda ISO with an embedded pre-built OS archive.
Live installerworkstation-live-installer.isoAnaconda ISO with a live operating system.
Oracle Cloud Infrastructure Imageoci.qcow2QCOW2 formatted disk image for use with Oracle Cloud. This is identical to the qcow2 image.
WSLwsl.wslRoot filesystem archive for use with Windows Subsystem for Linux.
Minimal rawminimal-raw
minimal-raw-xz
.raw / .raw.xzRaw disk image (optionally xz-compressed) for bare-metal or generic virtualization.
PXEpxe-tar-xz.tar.xzKernel, initramfs, and rootfs archive for network (PXE) boot.
Containercontainer
container-minimal
.tarOCI container image tarball.
Vagrant2vagrant-libvirt
vagrant-virtualbox
generic-vagrant-libvirt
generic-vagrant-virtualbox
.boxVagrant box for libvirt or VirtualBox.
Network installernetwork-installer.isoAnaconda 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

  1. 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

  2. RHEL, CentOS, and similar use vagrant-libvirt / vagrant-virtualbox. Fedora's canonical names are generic-vagrant-libvirt / generic-vagrant-virtualbox (no short alias).