Provisioning Using Red Hat Satellite (and Demonstration)
Start course

Red Hat Satellite is a scalable platform used to manage your Red Hat infrastructure. This course examines the four main use cases of Satellite, with demonstrations to apply real-world examples to the concepts covered in the lectures.

The course begins with the basics of patching and software management and then moves on to subscription management, provisioning, configuration management, and finally, you will learn how to integrate Satellite with Ansible and Insights.

Learning Objectives

  • Understand the fundamentals of Red Hat Satellite
  • Learn how to carry out patching and software management, subscription management, provisioning, configuration management using Red Hat Satellite
  • Understand how Red Hat Satellite can be integrated with Ansible and Insights

Intended Audience

  • System operators and administrators


In order to take this course, you should be familiar with basic Red Hat terminology and also have some experience with a Red Hat Enterprise Linux system.


In this video, we will review the basics of Provisioning with Red Hat Satellite. Satellite’s able to provision to bare metal, virtual, private and public clouds. Satellite has the ability to integrate into existing infrastructure services like DNS, DHCP and Identity platform, automating what normally would be a multi-step process. Satellite can also discover non-provisioned hosts. So discovery’s a means to set up the networking infrastructure so that when new systems are brought in, you can simply turn them on and those servers will show up in Satellite as new systems to manage.

In the demo, we will focus on two use cases, provisioning of a virtual machine and discovery of a new host. Satellite can provision in a lot of different ways. During this module we are going to focus on two methods, provision of a new virtual machine via a compute resource and discovery using a PXE boot. 

We will start with provisioning using a compute resource. A compute resource in Satellite is used to define information about your compute resource provider such as RHEV, VMWare, Amazon, or Libvirt. Creating a compute resource will enable you to make API calls to your resource provider to provision hosts. Using a compute resource, I can create a host including a VM or a cloud instance. 

In Satellite we will go to Infrastructure > Compute Resources. As you can see I already have created a provider Libvirt. I am using Libvirt for ease of demo purposes. I will click Create Compute Resource to give you a feel for the options. Notice that as I choose the provider, the options change to be specific to that provider. I will cancel out of this and take a quick look at the existing compute resource. Note that since this is already running, I have a bunch of virtual machines listed as well as some compute profiles.

Satellite by default includes the small, medium, and large compute profile options but you need to configure the attributes to meet your needs. Let’s also take a look at the host group. This will be relevant for any provisioning method that you use. A host group defines how a group of systems can be commonly configured. When we go to provision a host, the host group will allow many of the settings to be automatically completed based on the host group settings.

I’ll select RHEL7/Crash and notice here that we have a lot of options such as the Content Source. This could be your Satellite or a Capsule Server. How to deploy. In this case, Libvirt. As well as your default compute profile. To actually provision a host, the steps are simple. Hosts > Create Host. We will provide a name, so my organization, my location and then select my host group. You should notice that all the other fields get inherited from that host group. We can go through and select additional options or change some of the defaults if we like but, generally speaking, it is not necessary. 

Before I hit Submit, I am going to open up my Libvirt window. If you look at the list of host names, notice that that host does not currently exist. I will select Always on Top, back to my Satellite UI, and Submit.

Notice on the Libvirt screen the host name has appeared. If I open the console for that new host, I can see the host being provisioned with very little effort on my part. This will take a few minutes to complete so we’re going to let that run on the background and will come back to it.

Next, I want to talk about provisioning using discovery. There could be a few different reasons to use this method. Maybe you have a bare metal system. Or maybe you have a separation of duties where the VM admins create the VMs and the Linux admin just provisions and patches. Using discovery is helpful in these instances. Discovery can be manual or automated. For the purposes of today’s demo, I am going to use virtual machines and Libvirt. I have a couple already created that I’ll start up. And I’ll have Satellite to discover them.

In addition to the host groups that we have already covered, Satellite also has discovery rules that allow you to match the system facts of discovered hosts to define how they are provisioned. For example, you might want to automatically provision hosts with a high CPU count as hypervisors. Or you might want to provision hosts with large hard disks as database servers. We’ll click Configure > Discovery Rules.

I already have a rule created so I will select it to show you the details. In this example, we’re going to match the bios vendor and assign hosts with a bios vendor of Seabios to the RHEL7/Crash host group. We’ll also name the host based on the last octet of the IP address. I will just cancel out this. 

Under Administrator, Settings and then Discovered, I wanted to point out that auto provisioning is set to No. If it was set to Yes, then upon discovering a new host Satellite would import it based on the discovery rules and provision the OS automatically with no intervention from an Admin. For this demo I do want to manually start the provisioning, but I wanted to point out this setting as I currently have it disabled.

So to provision, I’m going to go back to Libvirt and I’m going to create a VM. I’ll select PXE boot, Linux RHEL7.5, give it two gig of RAM and a ten gig hard drive. Give it a name. I'm going to use the VLAN 127. We’ll click Finish.

Soon as this starts, I’m actually going to power it down because I do want to make one other configuration change. In the Boot Options, I want it to boot from the NIC first because we will need to boot from network at least twice. I will apply and run this host. Let me set this window to always be on top so you can see it running. Once this menu appears I’m going to select the Foreman Discovery Image. And I’m just going to let this run and not touch it.

So you have got this success page which means that the Satellite has discovered the host and we’re ready for the next step. Remember if I had enabled the auto provisioning, the next step would have gone on without me.

On Satellite I am going to go to Hosts > Discovered Hosts and I can click right on this system name to see all the details about the host. At the top under Select Action, I can choose Auto Provision which will use my discovery rules to match and provision this host. Notice that the host is starting the provisioning process and is configuring the OS. This will take several minutes to complete. 

I can go on to the Hosts, All Hosts page. We can see that that new host is listed at the top. And we match the hosts based on the discovery rules that we provided so it’s named hosts-118 which is the last octet of the IP address. We can of course change that host name later. If I click into the host itself, we will see the build is pending installation while this build completes. 

And as you can see the installation process has completed. And that didn’t just install the OS for us, it also applied any other software that we had listed in that host group. So as part of the installation process, it also registered this host to Satellite. As you can see on the Satellite window the build is installed. The configuration is up to date but there is some security errata that is ready to be installed. So we could go on and patch this system like we showed you in an earlier video. I do want to reopen up the first machine that we booted. If you recall in the beginning of the section we had also deployed using a compute resource host RH053. So that one as well you can see has completed its installation. 

So to recap this section, we first discovered using a compute resource. We created a brand new virtual machine on Libvirt. Provisioned that with an OS and it’s up and running. We then did a bare metal type discovery where we had a brand new, in this case it was a virtual machine, but could’ve been bare metal. Could be a VM that your hypervisor or virtualization team creates and hands over to you. But we detected that using discovery and we could’ve auto provisioned that entirely end to end using the discovery rules. We did that a bit manually just to show you what it looks like. But that completes the provisioning portion and we’ll see you in the next video.


About the Author
Learning Paths

Jeremy is a Content Lead Architect and DevOps SME here at Cloud Academy where he specializes in developing DevOps technical training documentation.

He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 25+ years. In recent times, Jeremy has been focused on DevOps, Cloud (AWS, Azure, GCP), Security, Kubernetes, and Machine Learning.

Jeremy holds professional certifications for AWS, Azure, GCP, Terraform, Kubernetes (CKA, CKAD, CKS).

Covered Topics