Building a custom RHEL-8 ISO

For a consistent experience for my end-users as well as the operations team that supports their servers, we build our systems from a custom ISO that uses a company Kickstart file. This Kickstart file defines the initial disk layout, the use of LVM to biuld partitions, which base packages to install, and the initial root user account and credentials. The Kickstart also injects a script that is run the first time the root users logs in locally; it prompts the user for the hostname and domain, DNS servers, the IP address information, sets up the NIC bonding, and verifies the disk(s) to use for the OS installation. All of this helps ensure our builds are consistent and that our automation tool (an Ansible playbook) can connect and finish the initial configuration.

Each release of a Red Hat OS update has minor changes necessary to the Kickstart file, and the release of Red Hat Enterprise Linux 8 is no exception.



View all Ansible Variables

Use this command:

$ ansible-inventory -I /path/to/inventory --yaml --graph --vars

To get the variables dumped out like this:

  |  |--host_a
  |  |  |--{variable_a = Value}
  |  |  |--{list_a = {u'alpha': 'alpha value', u'beta': 'beta value'}}
  |  |  |--{host_a_variable = Special for host_a}
  |  |--host_b
  |  |  |--{variable_a = Value}
  |  |  |--{host_b_variable = Special for host_b}