Chapter 5. Provisioning Concepts
An important feature of Red Hat Satellite is unattended provisioning of hosts. To achieve this, Red Hat Satellite uses DNS and DHCP infrastructures, PXE booting, TFTP, and Kickstart. Use this chapter to understand the working principle of these concepts.
5.1. PXE Booting
Preboot execution environment (PXE) provides the ability to boot a system over a network. Instead of using local hard drives or a CD-ROM, PXE uses DHCP to provide host with standard information about the network, to discover a TFTP server, and to download a boot image. For more information about setting up a PXE server see the Red Hat Knowledgebase solution How to set-up/configure a PXE Server.
5.1.1. PXE Sequence
- The host boots the PXE image if no other bootable image is found.
- A NIC of the host sends a broadcast request to the DHCP server.
- The DHCP server receives the request and sends standard information about the network: IP address, subnet mask, gateway, DNS, the location of a TFTP server, and a boot image.
-
The host obtains the boot loader
image/pxelinux.0
and the configuration filepxelinux.cfg/00:MA:CA:AD:D
from the TFTP server. -
The host configuration specifies the location of a kernel image,
initrd
and Kickstart. - The host downloads the files and installs the image.
For an example of using PXE Booting by Satellite Server, see Provisioning Workflow in Provisioning Hosts.
5.1.2. PXE Booting Requirements
To provision machines using PXE booting, ensure that you meet the following requirements:
Network requirements
- Optional: If the host and the DHCP server are separated by a router, configure the DHCP relay agent and point to the DHCP server.
Client requirements
- Ensure that all the network-based firewalls are configured to allow clients on the subnet to access the Capsule. For more information, see Figure 2.1, “Satellite Topology with Isolated Capsule”.
- Ensure that your client has access to the DHCP and TFTP servers.
Satellite requirements
- Ensure that both Satellite Server and Capsule have DNS configured and are able to resolve provisioned host names.
- Ensure that the UDP ports 67 and 68 are accessible by the client to enable the client to receive a DHCP offer with the boot options.
- Ensure that the UDP port 69 is accessible by the client so that the client can access the TFTP server on the Capsule.
- Ensure that the TCP port 80 is accessible by the client to allow the client to download files and Kickstart templates from the Capsule.
- Ensure that the host provisioning interface subnet has a DHCP Capsule set.
- Ensure that the host provisioning interface subnet has a TFTP Capsule set.
- Ensure that the host provisioning interface subnet has a Templates Capsule set.
- Ensure that DHCP with the correct subnet is enabled using the Satellite installer.
- Enable TFTP using the Satellite installer.
5.2. HTTP Booting
You can use HTTP booting to boot systems over a network using HTTP.
5.2.1. HTTP Booting Requirements with managed DHCP
To provision machines through HTTP booting ensure that you meet the following requirements:
Client requirements
For HTTP booting to work, ensure that your environment has the following client-side configurations:
- All the network-based firewalls are configured to allow clients on the subnet to access the Capsule. For more information, see Figure 2.1, “Satellite Topology with Isolated Capsule”.
- Your client has access to the DHCP and DNS servers.
- Your client has access to the HTTP UEFI Boot Capsule.
Network requirements
- Optional: If the host and the DHCP server are separated by a router, configure the DHCP relay agent and point to the DHCP server.
Satellite requirements
Although TFTP protocol is not used for HTTP UEFI Booting, Satellite uses TFTP Capsule API to deploy bootloader configuration.
For HTTP booting to work, ensure that Satellite has the following configurations:
- Both Satellite Server and Capsule have DNS configured and are able to resolve provisioned host names.
- The UDP ports 67 and 68 are accessible by the client so that the client can send and receive a DHCP request and offer.
- Ensure that the TCP port 8000 is open for the client to download the bootloader and Kickstart templates from the Capsule.
- The TCP port 9090 is open for the client to download the bootloader from the Capsule using the HTTPS protocol.
- The subnet that functions as the host’s provisioning interface has a DHCP Capsule, a HTTP Boot Capsule, a TFTP Capsule, and a Templates Capsule
The
grub2-efi
package is updated to the latest version. To update thegrub2-efi
package to the latest version and execute the installer to copy the recent bootloader from/boot
into/var/lib/tftpboot
directory, enter the following commands:# satellite-maintain packages update grub2-efi # satellite-installer
5.2.2. HTTP Booting Requirements with unmanaged DHCP
To provision machines through HTTP booting without managed DHCP ensure that you meet the following requirements:
Client requirements
HTTP UEFI Boot URL must be set to one of:
-
http://capsule.example.com:8000
-
https://capsule.example.com:9090
-
- Ensure that your client has access to the DHCP and DNS servers.
- Ensure that your client has access to the HTTP UEFI Boot Capsule.
- Ensure that all the network-based firewalls are configured to allow clients on the subnet to access the Capsule. For more information, see Figure 2.1, “Satellite Topology with Isolated Capsule”.
Network requirements
- An unmanaged DHCP server available for clients.
- An unmanaged DNS server available for clients. In case DNS is not available, use IP address to configure clients.
Satellite requirements
Although TFTP protocol is not used for HTTP UEFI Booting, Satellite use TFTP Capsule API to deploy bootloader configuration.
- Ensure that both Satellite Server and Capsule have DNS configured and are able to resolve provisioned host names.
- Ensure that the UDP ports 67 and 68 are accessible by the client so that the client can send and receive a DHCP request and offer.
- Ensure that the TCP port 8000 is open for the client to download bootloader and Kickstart templates from the Capsule.
- Ensure that the TCP port 9090 is open for the client to download the bootloader from the Capsule via HTTPS protocol.
- Ensure that the host provisioning interface subnet has a HTTP Boot Capsule set.
- Ensure that the host provisioning interface subnet has a TFTP Capsule set.
- Ensure that the host provisioning interface subnet has a Templates Capsule set.
Update the
grub2-efi
package to the latest version and execute the installer to copy the recent bootloader from the/boot
directory into the/var/lib/tftpboot
directory:# satellite-maintain packages update grub2-efi # satellite-installer
5.3. Kickstart
You can use Kickstart to automate the installation process of a Red Hat Satellite or Capsule Server by creating a Kickstart file that contains all the information that is required for the installation. For more information about Kickstart, see Performing an automated installation using Kickstart in Performing an advanced RHEL 8 installation.
5.3.1. Workflow
When you run a Red Hat Satellite Kickstart script, the following workflow occurs:
- It specifies the installation location of a Satellite Server or a Capsule Server.
- It installs the predefined packages.
- It installs Subscription Manager.
- It uses Activation Keys to subscribe the hosts to Red Hat Satellite.
-
It installs Puppet, and configures a
puppet.conf
file to indicate the Red Hat Satellite or Capsule instance. - It enables Puppet to run and request a certificate.
- It runs user defined snippets.