Install via the Network (PXE Boot)

During a network boot installation:

  1. The client boots in PXE mode.

  2. A DHCP server provides the client with an IP address and mask, the address of an installation server, and the name of a bootloader file on that server.

  3. The client downloads the bootloader file via the TFTP protocol from the installation server and executes it.

  4. The client is presented with a choice of possible profiles to install from a menu, or starts automatically installing one of the profiles.

  5. The client downloads via the TFTP protocol a kernel and an initial RAM disk for the distribution matching that profile.

  6. The installation kernel starts an installation program, either Kickstart or AutoYaST. From now on it uses resources provided on the server via the HTTP protocol.

  7. The distribution is installed automatically according to the Kickstart or AutoYaST profile.

  8. The profile calls a code snippet that registers the client to the Uyuni Server.

cobbler menu

The installation server can either be the Uyuni Server or one of its proxies. To install from a proxy, you must synchronize the TFTP tree between the server and the proxy before you begin.

The DHCP server may also provide other configuration information to the client, like a host name, the address of a router and the address of a domain name server. Some of this information might be needed for the autoinstallation, for example if you specify the installation server by its domain name.

In the PXE boot menu, the first choice is Local boot. If you select this, the boot process continues from the local disk drives. This option is selected automatically if no profile was selected after a certain time. This is a security measure to prevent from starting an autoinstallation if no human operator is there to select one of the profiles.

Alternatively, the installation can start automatically from one of the profiles without manual intervention. This is called "unattended provisioning."

The "bare metal" functionality is a kind of unattended provisioning based on PXE boot. In this scenario, the bootloader file only registers the client at the Uyuni Server and does not start the installation. You can then trigger an in-place reinstallation later.

Procedure: Installing with PXE Boot
  1. Prepare the DHCP server, see Prepare the DHCP Server.

  2. Prepare an autoinstallable distribution, see Autoinstallable Distributions.

  3. Prepare an autoinstallation profile, see Autoinstallation Profiles.

  4. Reboot the client, and chose a profile to install.

Some other steps are optional. To use a proxy as the installation server, see Synchronize the TFTP Tree with Proxies. For unattended provisioning, see Unattended Provisioning.

1. Prepare the DHCP Server

The PXE boot process uses DHCP to find the TFTP server. The Uyuni Server or its proxies can act as such a TFTP server.

You must have administrative access to the network’s DHCP server. Edit the DHCP configuration file so that it points to the installation server as the TFTP boot server.

Example: Configuring the ISC DHCP Server
  1. On the DHCP server, as root, open the /etc/dhcpd.conf file.

  2. Modify the declaration for your client:

  host myclient { (...)
                  next-server 192.168.2.1;
                  filename "pxelinux.0"; }
  1. Save the file and restart the dhcpd service.

This example directs the PXE client myclient to the installation server at 192.168.2.1 and instructs it to retrieve the pxelinux.0 bootloader file.

Alternatively, if your DHCP server is registered at Uyuni, you can configure it using the DHCPd formula instead:

Example: Configuring the ISC DHCP Server Using the DHCPd Formula
  1. Navigate to Systems  System List, select the client you want to change, and go to the Formulas tab to enable the DHCPd formula.

  2. Go to the formula’s Dhcpd tab, and in the Next Server field, enter the hostname or IP address of the installation server.

  3. In the Filename EFI field, type grub/shim.efi to enable EFI PXE support.

  4. In the Filename field, type pxelinux.0 to enable legacy BIOS support.

  5. Click Save Formula to save your configuration.

  6. Apply the highstate.

If you do not use Secure Boot, type grub/grubx86.efi instead of grub/shim.efi in the Filename EFI field.

For different architectures, see table GRUB EFI binary names for different architectures.

Using Cobbler managed DHCP is unsupported with Uyuni.

This sets up a global PXE server for all the hosts, you can also have per-host settings. For more information about the DHCPd formula, see DHCPd Formula.

2. Synchronize the TFTP Tree with Proxies

You can synchronize the TFTP tree on the Uyuni Server with the Uyuni Proxy. For synchronization, HTTPS port 443 must be open.

Every added proxy slows down the tree synchronization.

Procedure: Synchronizing TFTP between Server and Proxy
  1. On the Uyuni Server, at the command prompt, as root, install the susemanager-tftpsync package:

zypper install susemanager-tftpsync
  1. On the Uyuni Proxy, at the command prompt, as root, install the susemanager-tftpsync-recv package:

zypper install susemanager-tftpsync-recv
  1. On the proxy, as root, run the configure-tftpsync.sh script. The script interactively asks you for details on the host names and IP addresses of the Uyuni Server and Proxy, as well for the location of the tftpboot directory on the Proxy. For more information, use the configure-tftpsync.sh --help command.

  2. On the server, as root, run the configure-tftpsync.sh script.

    configure-tftpsync.sh proxy1.example.com proxy2.example.com
  3. Run the cobbler sync command on the server to push the files to the proxy. This fails if you have not configured the proxies correctly.

If you want to change the list of proxies later on, you can use the configure-tftpsync.sh script to edit them.

If you reinstall an already configured proxy and want to push all the files again, you must remove the cache file at /var/lib/cobbler/pxe_cache.json before you call cobbler sync.

3. GRUB EFI binary names for different architectures

Table 1. GRUB EFI binary names for different architectures
Architecture GRUB EFI binary name

aarch64

grubaa64.efi

x86-64

grubx86.efi

ppc64le

grub.ppc64le