image-builder-universal¶
OS-agnostic Image Builder Workflow
This workflow builds and captures a "gold master" image of any supported
Linux distribution. Unlike the older per-OS Image Builder workflows, the OS
to install is not hardcoded in the workflow -- it is selected at runtime by
the linux-selector stage, exactly like the universal-linux-install
workflow.
Selecting the OS to build¶
Set the linux/install-bootenv Param on the builder machine (or a Profile it
uses) to any key from the linux/install-bootenv-map map. A few examples:
linux/install-bootenv: alma-9-min # AlmaLinux 9 (minimal)
linux/install-bootenv: rocky-10 # Rocky Linux 10
linux/install-bootenv: ubuntu-24.04 # Ubuntu 24.04
linux/install-bootenv: rhel-server-9-dvd
To install a bootenv that is not present in the map, set
linux/install-bootenv-override to the bootenv name directly. To customize
the key-to-bootenv mapping, override linux/install-bootenv-map. See the
linux-selector stage and those Params (from drp-community-content) for
full details.
The BootEnv(s) you intend to build must be installed on the DRP Endpoint.
Most are provided by drp-community-content; RHEL / SLES / Photon come from
os-other.
Customizing the image¶
To customize the contents of the image, use the two flexiflow injection points -- set these Params on the builder machine to a list of Task names:
image-builder/pre-builder-flexiflow- runs before theimage-builder-linuxstageimage-builder/post-builder-flexiflow- runs afterimage-builder-linux, before capture
Any Task run between the install and capture stages operates on the chroot root filesystem of the image being built, so changes become part of the image. See each flexiflow stage for details.
RHEL subscription registration¶
This workflow is intentionally OS-agnostic and therefore does not include
the RHEL-only redhat-subscription-register stage (which would fail for
non-RHEL builds). To build a RHEL image that requires subscription
registration, inject redhat-subscription-register via
image-builder/pre-builder-flexiflow, and set the redhat/* subscription
Params, for example:
image-builder/skip-package-reset: true
image-builder/pre-builder-flexiflow:
- redhat-subscription-register
redhat/subscription-username: "[Insert RHSM Username]"
redhat/subscription-password: "[Insert RHSM Password]"
redhat/rhsm-activation-key: "[Insert RHSM Activation Key]"
redhat/rhsm-organization: "[Insert RHSM Organization ID]"
redhat/subscription-repos:
- rhel-9-for-x86_64-appstream-rpms
- rhel-9-for-x86_64-baseos-rpms
See the redhat/rhsm-* Params (from os-other) for the full list of
subscription options.
Objects that Reference image-builder-universal¶
Not used in current content packs
Objects used by image-builder-universal¶
- stages image-builder-start in field Stages as value image-builder-start
- stages linux-selector in field Stages as value linux-selector
- stages ssh-access in field Stages as value ssh-access
- stages drp-agent in field Stages as value drp-agent
- stages image-builder-pre-builder-flexiflow in field Stages as value image-builder-pre-builder-flexiflow
- stages image-builder-linux in field Stages as value image-builder-linux
- stages image-builder-post-builder-flexiflow in field Stages as value image-builder-post-builder-flexiflow
- stages image-builder-capture in field Stages as value image-builder-capture
- stages complete-nobootenv in field Stages as value complete-nobootenv