Satellite 6 Provisioning Basics

Updated

Basic Form

Satellite -> Foreman-Proxy
               |
               V
             Network
              |
              V
Client -> PXE(Preboot execution Environment)

The Satellite, connects with a module called foreman-proxy which handles the provisioning side.
This is then passed down through the network.
The client interacts with the Satellite via a program called PXE.

Complete Form

Satellite -> Foreman Proxy 
          -> DNS ( Convert ip to names and store this information onto our dns server (Satellite or external dns server)
          -> DHCP  ( Assign ip addresses to Physical or virtual machines)
          -> TFTP  (The protocol we use to get and put information between the Satellite and the host)
               |
               V
Network Card (physical mac address/ip/route)
               |
               V
    Via the Network (gateway<->routes) 
               |
               V
Network Card(mac address) -> Network Information (subnet(Ip Address/Mac Address))
              |
              V
            PXE
             |
             V
          TFTP

The Satellite passed down the task of provisioning to foreman-proxy.
Foreman proxy then has sub modules which is then passes onto the network.

The network, has rules(TCP IP model) which inserts the route, ip address and mac address information into a frame.
The client receives the network frame request from the Network Route and onto the Network Card which interacts with a program called PXE in order to execute the commands.

DHCP and Satellite

When a server boots up, it will provide the mac address of the Network Card.
It passes this mac address via the network topology onto the Satellite.
You can witness this occuring in /var/log/foreman/production.log using baremetal to provision.
We then store this mac address into our database, which is contained inside /var/lib/dhcpd/dhcpd.leases
We can then assign a static ip address to the provisioning, however what if we wanted to automatically generate an ip.

Normally when a server boots up before loading the operating system, it will Not have any ip address, the ip address is provided by the dhcp server(an application).
In order to assign an ip address, we require dhcp, we use the satellite as a dhcp server that stores its information in leases files.
/var/lib/dhcpd/dhcpd.leases

We send a request to the Satellite Server which hooks into the foreman-proxy-> dns module, and this module then provides the ip address to the client.
This can be monitored in the log `/var/log./foreman-proxy/proxy.log

DNS and Satellite

If we were to provision a host using Satellite without DNS, the host would only have an ip assigned which was generated by our dhcp server.
It would not have a name such as example.com but just an ip xxx.xxx.xxx.xxx. Dns allows us to convert ipaddress into friendlynames such as host.example.com
Luckily this feature is provided by the Satellite and the Satellite assigns a name to the new host such as 'host.example.comit then stores this onto the Satellite Database and in addition to the dns table which is contain in the file/var/named/dynamic/db.Satellitefqdn.com`.

However the Satellite is designed with rules, so if the host doesn't return the correct dns entry, the provisioning will fail, so we must have dns working in order to successfully provision.

When we set the dns, we assign two rules for the host.

  • Forward DNS zone ( Can you provide (hostname) for this set (ip address)?
  • Reverse DNS zone ( Can you provide me the (ip address) for this set (hostname)
    When provisioning via compute resources, the reverse dns zone is required)

PXE and Satellite

Pxe (Pre Boot Execution) is a program that allows a server to boot from the network card only, without having to boot into an operating system.
Pxe will download the boot program (scripts) using tftp. Then based on these scripts it will start perform the set of instructions.

TFTP

Tftp (Transfer File Protocol) works with pxe, and provides the interaction between the (host <---> Satellite)
When the host connects with the Satellite, it will initialise the set of instructions. These instructions are called from the (provisioning templates)
These Provisioning Templates contain the program to execute the installation of an operating system, these instructions will be stored on the hosts RAM.

You will notice, the message on the host, such as: Downloading kickstartable trees files This is tftp downloading the kickstart files from the Satellite.
The provisioning templates, are normally contained in two or more files. You can specify how many snippets you would like to provision with.

Normally the first snippet contained is to have tftp download the ramdisk, which is the first step in installing the operating system.
On my Satellite, we can see that currently only Redhat 6.6 (minor version) is available

ls -la  /var/lib/tftpboot/boot/
total 39692
drwxr-xr-x. 2 foreman-proxy foreman-proxy     4096 Sep  9 17:17 .
drwxr-xr-x. 4 root          root              4096 Mar 24  2015 ..
-rw-r--r--. 1 foreman-proxy foreman-proxy 36411002 Aug 10 15:19 RedHat-6.6-x86_64-initrd.img
-rw-r--r--. 1 foreman-proxy foreman-proxy  4222192 Aug 10 15:19 RedHat-6.6-x86_64-vmlinuz

The next provisioning snippets, contain how we want to configure the storage (partition tables, network and where the operating core files are located.
When we visit the operating system tab, i.e https://satfqdn.example.com/operatingsystems this will provide the location of where the o/s is located.

For more KB articles/solutions related to Red Hat Satellite 6.x Provisioning Issues, please refer to the Consolidated Troubleshooting Article for Red Hat Satellite 6.x Provisioning related Issues

Product(s)
Category
Components
Article Type