Chapter 1. Introduction

1.1. Provisioning Overview

Provisioning is a process that starts with a bare physical or virtual machine and ends with a fully configured, ready-to-use operating system. Using Red Hat Satellite, you can define and automate fine-grained provisioning for a large number of hosts.

There are many provisioning methods. For example, you can use Satellite Server’s integrated Capsule or an external Capsule Server to provision bare metal hosts using both PXE based and non-PXE based methods. You can also provision cloud instances from specific providers through their APIs. These provisioning methods are part of the Red Hat Satellite application life cycle to create, manage, and update hosts.

Red Hat Satellite has different methods for provisioning hosts:

Bare Metal Provisioning
Satellite provisions bare metal hosts primarily through PXE boot and MAC address identification. You can create host entries and specify the MAC address of the physical host to provision. You can also boot blank hosts to use Satellite’s discovery service, which creates a pool of ready-to-provision hosts. You can also boot and provision hosts through PXE-less methods.
Cloud Providers
Satellite connects to private and public cloud providers to provision instances of hosts from images that are stored with the Cloud environment. This also includes selecting which hardware profile or flavor to use.
Virtualization Infrastructure
Satellite connects to virtualization infrastructure services such as Red Hat Virtualization and VMware to provision virtual machines from virtual image templates or using the same PXE-based boot methods as bare metal providers.

1.2. Provisioning Workflow

The provisioning process follows a basic PXE workflow:

  1. You create a host and select a domain and subnet. Satellite requests an available IP address from the DHCP Capsule Server that is associated with the subnet or from the PostgreSQL database in Satellite. Satellite loads this IP address into the IP address field in the Create Host window. When you complete all the options for the new host, submit the new host request.
  2. Depending on the configuration specifications of the host and its domain and subnet, Satellite creates the following settings:

    • A DHCP record on the Capsule Server that is associated with the subnet.
    • A forward DNS record on the Capsule Server that is associated with the domain.
    • A reverse DNS record on the DNS Capsule Server that is associated with the subnet.
    • PXELinux, Grub, Grub2, and iPXE configuration files for the host in the TFTP Capsule Server that is associated with the subnet.
    • A Puppet certificate on the associated Puppet server.
    • A realm on the associated identity server.
  3. The new host requests a DHCP reservation from the DHCP server.
  4. The DHCP server responds to the reservation request and returns TFTP next-server and filename options.
  5. The host requests the boot loader and menu from the TFTP server according to the PXELoader setting.
  6. A boot loader is returned over TFTP.
  7. The boot loader fetches configuration for the host through its provisioning interface MAC address.
  8. The boot loader fetches the operating system installer kernel, init RAM disk, and boot parameters.
  9. The installer requests the provisioning template from Satellite.
  10. Satellite renders the provision template and returns the result to the host.
  11. The installer performs installation of the operating system.

    • The installer registers the host to Satellite using Red Hat Subscription Manager.
    • The installer installs management tools such as katello-agent and puppet.
    • The installer notifies Satellite of a successful build in the postinstall script.
  12. The PXE configuration files revert to a local boot template.
  13. The host reboots.
  14. The new host requests a DHCP reservation from the DHCP server.
  15. The DHCP server responds to the reservation request and returns TFTP next-server and filename options.
  16. The host requests the bootloader and menu from the TFTP server according to the PXELoader setting.
  17. A boot loader is returned over TFTP.
  18. The boot loader fetches the configuration for the host through its provision interface MAC address.
  19. The boot loader initiates boot from the local drive.
  20. If you configured the host to use any Puppet classes, the host configures itself using the modules.

This workflow differs depending on custom options. For example:

Discovery
If you use the discovery service, Satellite automatically detects the MAC address of the new host and restarts the host after you submit a request. Note that TCP port 8443 must be reachable by the Capsule to which the host is attached for Satellite to restart the host.
PXE-less Provisioning
After you submit a new host request, you must boot the specific host with the boot disk that you download from Satellite and transfer using a USB port of the host.
Compute Resources
Satellite creates the virtual machine and retrieves the MAC address and stores the MAC address in Satellite. If you use image-based provisioning, the host does not follow the standard PXE boot and operating system installation. The compute resource creates a copy of the image for the host to use. Depending on image settings in Satellite, seed data can be passed in for initial configuration, for example using cloud-init. Satellite can connect using SSH to the host and execute a template to finish the customization.