This article was originally published on the Red Hat Customer Portal. The information may no longer be current.
One of the first major differences between Satellite 5 & Satellite 6 is the client side tooling. Satellite 5 leveraged the various RHN tools (rhn_register, rhnreg_ks, etc). Satellite 6 uses subscription-manager. Over the next few articles, we'll deep-dive into the various subscription management tools (such as subscription-manager, rct, virt-who, and others ), with the goal of providing a better understanding to how these tools work.
Firstly, some background is in order. There is a major difference in the philosophy between how the classic tools (Satellite <= 5.x, RHN Classic & Proxy) operated compared to the new tools. (SAM, RHSM, Satellite 6.x)
- The classic (Satellite <= 5.x, RHN Classic & Proxy) tools are very content driven.
- The certificate based (SAM, RHSM, Satellite 6.x) tools are very subscription driven.
That is, with classic tools, all we did was access content. 'Attaching' the subscription was something that happened asynchronously & in the background. With the certificate tools, to get access to content, you must go through a subscription. And without a proper subscription, the system has no access to content.
Introduction to Red Hat Subscriptions
Red Hat Subscriptions are built based upon a simple hierarchy.
- Subscription Name. (This is the canonical name of the subscription. Example: 'Red Hat Satellite' or 'Red Hat Enterprise Linux Server, Premium (Physical or Virtual Nodes)'). This is the name of the subscription as you see it in the Customer Portal. It has a Stock Keeping Unit (SKU) and a price associated with it.
- Products. These are the various basic components such as Red Hat Enterprise Linux, Red Hat Software Collections, etc that are part of the Subscription that is purchased.
- Content Sets. This is where the software comes from. These are usually yum repositories, as we know and love, but there are other types too. Each Product provides 1 or more Content Sets.
- Products. These are the various basic components such as Red Hat Enterprise Linux, Red Hat Software Collections, etc that are part of the Subscription that is purchased.
This hierarchy is very important, as it is fundamental to understanding how the Subscription Management tools work.
- 1 Subscription [Name] provides:
- 1 or more Products, which each provide:
- 1 or more Content Sets
- 1 or more Products, which each provide:
To build Subscriptions (again, the things that are sold), we bundle various Products into a cohesive unit. This allows the ability to define "RHEL" in one place, and leverage it in any component that needs it. (RHEL, Satellite, Openshift, etc). This also provides the flexibility to add/remove Components without having to change the SKU.
For example, many Red Hat Enterprise Linux Subscriptions with Premium SLA in the 2013 subscription model include Extended Update Support (EUS). We can see this with via subscription-manager:
# subscription-manager list --all --available
+-------------------------------------------+
Available Subscriptions
+-------------------------------------------+
# Name of the Subscription
Subscription Name: Red Hat Enterprise Linux Server, Premium (Physical or Virtual Nodes)
# Products that are provided by this subscription.
Provides: Red Hat Enterprise Linux Resilient Storage (for RHEL Server) - Extended Update Support
Red Hat Software Collections (for RHEL Server)
Red Hat Enterprise Linux Atomic Host Beta
Red Hat Enterprise Linux High Availability (for RHEL Server) - Extended Update Support
Red Hat EUCJP Support (for RHEL Server) - Extended Update Support
Red Hat Container Images Beta
Red Hat Enterprise Linux Server - Extended Update Support
Red Hat Beta
Oracle Java (for RHEL Server) - Extended Update Support
Red Hat Enterprise Linux High Performance Networking (for RHEL Server) - Extended Update Support
Red Hat Enterprise Linux Scalable File System (for RHEL Server) - Extended Update Support
Oracle Java (for RHEL Server)
Red Hat Enterprise Linux Load Balancer (for RHEL Server) - Extended Update Support
Red Hat Container Images
Red Hat Enterprise Linux Server
Red Hat Enterprise Linux Atomic Host
Red Hat Software Collections Beta (for RHEL Server)
Red Hat S-JIS Support (for RHEL Server) - Extended Update Support
Red Hat Developer Toolset (for RHEL Server)
SKU: RH00003
Contract: 11223344
Pool ID: 809d1a82-ffb0-4a28-b686-3fcc1f55fd41
Provides Management: No
Available: 2
Suggested: 2
Service Level: Premium
Service Type: L1-L3
Subscription Type: Instance Based
Ends: 10/07/2016
System Type: Physical
The information above tells me that SKU RH00003 is named
'Red Hat Enterprise Linux Server, Premium (Physical or Virtual Nodes)' and it
provides the following Products:
- Red Hat Enterprise Linux Server
- Red Hat Enterprise Linux Server - Extended Update Support
And many others. Note: Content Sets provided by the subscription aren't shown in subscription-manager list output. We'll cover more on this later, but those are the basics.
One of the big advantages of subscription-manager is bringing the ability to see end to end subscription-consumption. In this doc, I'll walk through some tasks that I perform on a day to day basis, whilst drawing an analogue to how things were done in the RHN world.
Registering a System.
This first task is the most basic. I have a system that is not registered. How do I get it registered?
# subscription-manager register
Username: <redacted>
Password:
The system has been registered with ID: 293d8a12-15cd-43fc-be7d-447aa4999bfe
OK, what have I done? Firstly, we've gotten the system registered to Red Hat Subscription Management (RHSM), but we have no access to content. Think of this in the RHN world as having a system registered, but with no base channel assigned. Well that's not very useful. Let's attach a subscription. But I have a problem. Which one do I attach? Let's see what is available.
# subscription-manager list --all --available
Subscription Name: Red Hat Enterprise Linux Server, Premium (Physical or Virtual Nodes)
Provides: Red Hat S-JIS Support (for RHEL Server) - Extended Update Support
Red Hat EUCJP Support (for RHEL Server) - Extended Update Support
Oracle Java (for RHEL Server)
Red Hat Enterprise Linux Resilient Storage (for RHEL Server) - Extended Update Support
Red Hat Enterprise Linux High Availability (for RHEL Server) - Extended Update Support
Oracle Java (for RHEL Server) - Extended Update Support
Red Hat Enterprise Linux Atomic Host
Red Hat Beta
Red Hat Container Images
Red Hat Enterprise Linux Load Balancer (for RHEL Server) - Extended Update Support
Red Hat Enterprise Linux Scalable File System (for RHEL Server) - Extended Update Support
Red Hat Developer Toolset (for RHEL Server)
Red Hat Software Collections Beta (for RHEL Server)
Red Hat Enterprise Linux Atomic Host Beta
Red Hat Software Collections (for RHEL Server)
Red Hat Enterprise Linux High Performance Networking (for RHEL Server) - Extended Update Support
Red Hat Enterprise Linux Server
Red Hat Container Images Beta
Red Hat Enterprise Linux Server - Extended Update Support
SKU: RH00003
Contract: 11223344
Pool ID: 9c675f2bbcd54257a5950047cedfb6ee
Provides Management: No
Available: 92
Suggested: 1
Service Level: Premium
Service Type: L1-L3
Subscription Type: Instance Based
Ends: 08/04/2016
System Type: Physical
Subscription Name: Red Hat Satellite
Provides: Red Hat Satellite Capsule Beta
Red Hat Satellite 6 Beta
Red Hat Satellite
Red Hat Software Collections Beta (for RHEL Server)
Red Hat Software Collections (for RHEL Server)
Red Hat Enterprise Linux Server
Red Hat Satellite Capsule
Red Hat Satellite with Embedded Oracle
Red Hat Enterprise Linux Load Balancer (for RHEL Server)
Red Hat Enterprise Linux High Availability (for RHEL Server)
Red Hat Satellite Beta
Red Hat Beta
SKU: MCT0370
Contract: 11223344
Pool ID: b9d290725fea4b19b5d611ed7354a450
Provides Management: Yes
Available: 47
Suggested: 1
Service Level: Premium
Service Type: L1-L3
Subscription Type: Standard
Ends: 08/04/2016
System Type: Physical
What I can see here, is that I have a couple of subscriptions that I can use for this system. There are more, but I've snipped the output for demonstration purposes. Now, what is great about subscription-manager is that these subscriptions that I am seeing here directly map to the subs that I've purchased. This is how the end-to-end visibility of subscription consumption is provided
Now, let's attach one. There are two ways to attach a subscription. Either explicitly, or via auto-attach. For now, I am going to use the 'Pool ID' to attach a specific subscription. I like Premium subs & EUS, so I'll attach Pool ID 9c675f2bbcd54257a5950047cedfb6ee
# subscription-manager attach --pool 9c675f2bbcd54257a5950047cedfb6ee
Successfully attached a subscription for: Red Hat Enterprise Linux Server, Premium (Physical or Virtual Nodes)
Auto-attach.
The example above is the 'long way' of attaching a sub. We could have used auto-attach to properly pick a matching subscription. Instead of explicitly picking a subscription (using the Pool ID), I can have subscription-manager do this for me. First, I'll remove the subscription that I just added.
# subscription-manager remove --all
1 subscription removed at the server.
1 local certificate has been deleted.
And before we proceed, let's ask subscription-manager which products does it think we have installed.
# subscription-manager list
+-------------------------------------------+
Installed Product Status
+-------------------------------------------+
Product Name: Red Hat Enterprise Linux Server
Product ID: 69
Version: 6.5
Arch: x86_64
Status: Not Subscribed
Status Details: Not supported by a valid subscription.
Starts:
Ends:
And let's hurry up and tell subscription-manager to attach one automatically.
[root@archer facts]# subscription-manager attach --auto
Installed Product Current Status:
Product Name: Red Hat Enterprise Linux Server
Status: Subscribed
Good. The above command tells me that I now have a subscription that adequately covers the product 'Red Hat Enterprise Linux Server'.
Now let's look at what subscription was attached:
# subscription-manager list --consumed
+-------------------------------------------+
Consumed Subscriptions
+-------------------------------------------+
Subscription Name: Red Hat Satellite
Provides: Red Hat Satellite
Red Hat Enterprise Linux Server
Red Hat Beta
Red Hat Software Collections (for RHEL Server)
Red Hat Satellite Beta
Red Hat Satellite 6 Beta
Red Hat Software Collections Beta (for RHEL Server)
Red Hat Satellite Capsule Beta
Red Hat Enterprise Linux Load Balancer (for RHEL Server)
Red Hat Satellite Capsule
Red Hat Satellite with Embedded Oracle
Red Hat Enterprise Linux High Availability (for RHEL Server)
SKU: MCT0370
Contract: 11223344
Account: 1234567
Serial: 853468513729981513
Pool ID: b9d290725fea4b19b5d611ed7354a450
Active: True
Quantity Used: 1
Service Level: Premium
Service Type: L1-L3
Status Details:
Starts: 08/05/2013
Ends: 08/04/2016
System Type: Physical
How did one of my beloved Satellite subscriptions get consumed for this lowly little VM that I haven't (yet) installed Satellite on? Here is how: Auto-attach uses a couple of heuristics to determine which subscription should be attached when the auto-attach process runs. These include:
- System Facts:
- Number of sockets / cores.
- Is the system physical or virtual, etc. I.e., let's try to attach a 2-socket sub to a 2-socket system. These are viewable via subscription-manager facts
- On which hypervisor does a system run.
- SLA - Service Level Agreement (which can be specified interactively OR via the subscription management system (Satellite 6.x/SAM/RHSM)
- Product Certificate - Auto-attach uses the installed Product Certificates (which describe the product you have installed) and will select a subscription that matches.
In our example, my system has the 'Red Hat Enterprise Linux Server' product (based on the subscription-manager list output), and the Satellite sub provides product 'Red Hat Enterprise Linux Server'. Thus, it was an applicable subscription for that system. It may not actually be the sub I want.
Now, I'll remove this sub, and consume the 'Red Hat Enterprise Linux Server, Premium (Physical or Virtual Nodes)' sub that I had before.
# subscription-manager remove --all
1 subscription removed at the server.
1 local certificate has been deleted.
# subscription-manager attach --pool 9c675f2bbcd54257a5950047cedfb6ee
Successfully attached a subscription for: Red Hat Enterprise Linux Server, Premium (Physical or Virtual Nodes)
Product Certs.
In our previous example, we used the output of subscription-manager list to see which product was installed. But where does this information come from? This information is derived from a Product certificate, which is an X.509 certificate that is stored in /etc/pki/product. A product certificate represents (you guessed it) a Product that is installed on the system. Let's look at in /etc/pki/product.
# pwd
/etc/pki/product
# ls
69.pem
Notice how the certificate is named (69.pem)? It matches exactly the output of subscription-manager list that we ran before. Now let's further dig into that product cert, to see what it really says. There are two ways to do this. As it is a pretty standard X.509 certificate, I can use an openssl command to inspect it (openssl x509 -text -noout -in), OR I can use the lovely (and preferable) Red Hat Certificate Tool (rct) command, particularly, its cat-cert subcommand.
# rct cat-cert 69.pem
+-------------------------------------------+
Product Certificate
+-------------------------------------------+
Certificate:
Path: 69.pem
Version: 1.0
Serial: 12750047592154746048
Start Date: 2013-04-24 13:18:38+00:00
End Date: 2033-04-19 13:18:38+00:00
Subject:
CN: Red Hat Product ID [82d8aa4c-b4ae-4293-8526-06e8bd9df3f0]
Issuer:
C: US
CN: Red Hat Entitlement Product Authority
O: Red Hat, Inc.
OU: Red Hat Network
ST: North Carolina
emailAddress: ca-support@redhat.com
Product:
ID: 69
Name: Red Hat Enterprise Linux Server
Version: 6.5
Arch: x86_64
Tags: rhel-6,rhel-6-server
Brand Type:
Brand Name:
Note, the Start/End Date listed above are a reflection of when the Product cert expires, NOT when the subscription expires. Product certs are a critical part of how subscription-manager works. If they are missing, corrupt or incorrect, systems will not attach the proper subscription, and can potentially lose access to content. But where do they come from? Product certs come one of two ways:
- They are on the install media and get installed via Anaconda (the Red Hat
Enterprise Linux installation program) - They get installed after additional subscriptions are attached AND content is consumed from the associated repositories.
Now that we've attached an valid sub, let's actually get some content and install it. But first let's look at what repositories we have enabled:
# yum repolist
Loaded plugins: product-id, subscription-manager
This system is receiving updates from Red Hat Subscription Management.
rhel-6-server-eus-rpms | 3.7 kB 00:00
rhel-6-server-rpms | 3.7 kB 00:00
rhel-server-dts-6-rpms | 2.9 kB 00:00
rhel-server-dts2-6-rpms | 2.9 kB 00:00
repo id repo name status
rhel-6-server-eus-rpms Red Hat Enterprise Linux 6 Server - Extended Update Support (RPMs) 12,921
rhel-6-server-rpms Red Hat Enterprise Linux 6 Server (RPMs) 12,919
rhel-server-dts-6-rpms Red Hat Developer Toolset RPMs for Red Hat Enterprise Linux 6 Server 84
rhel-server-dts2-6-rpms Red Hat Developer Toolset 2 RPMs for Red Hat Enterprise Linux 6 Server 412
repolist: 26,336
Firstly, I have some repositories that are enabled by default. How did they get enabled? I didn't do them explicitly. Each product has a number of repositories which are enabled by defaults. This is done to provide better
'out of box' experience. I'll cover more on this in a later article.
And let's see what repositories we have available for consumption:
# subscription-manager repos --list
+----------------------------------------------------------+
Available Repositories in /etc/yum.repos.d/redhat.repo
+----------------------------------------------------------+
Repo ID: rhel-6-server-rpms
Repo Name: Red Hat Enterprise Linux 6 Server (RPMs)
Repo URL: https://cdn.redhat.com/content/dist/rhel/server/6/$releasever/$basearch/os
Enabled: 0
Repo ID: rhel-6-server-optional-rpms
Repo Name: Red Hat Enterprise Linux 6 Server - Optional (RPMs)
Repo URL: https://cdn.redhat.com/content/dist/rhel/server/6/$releasever/$basearch/optional/os
Enabled: 0
The output above has been snipped. And let's enable those two repos
[root@archer ~]# subscription-manager repos --enable rhel-6-server-rpms --enable rhel-6-server-optional-rpms
Repo rhel-6-server-rpms is enabled for this system.
Repo rhel-6-server-optional-rpms is enabled for this system.
Now Let's install something
[root@archer ~]# yum repolist; yum install ksh
Loaded plugins: product-id, subscription-manager
This system is receiving updates from Red Hat Subscription Management.
rhel-6-server-optional-rpms | 3.5 kB 00:00
rhel-6-server-rpms | 3.7 kB 00:00
repo id repo name status
rhel-6-server-optional-rpms Red Hat Enterprise Linux 6 Server - Optional (RPMs) 7,277
rhel-6-server-rpms Red Hat Enterprise Linux 6 Server (RPMs) 12,919
repolist: 20,196
Loaded plugins: product-id, subscription-manager
This system is receiving updates from Red Hat Subscription Management.
rhel-6-server-optional-rpms | 3.5 kB 00:00
rhel-6-server-rpms | 3.7 kB 00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package ksh.x86_64 0:20120801-10.el6_5.11 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================================
Installing:
ksh x86_64 20120801-10.el6_5.11 rhel-6-server-rpms 758 k
Transaction Summary
==============================================================================================================================================================
Install 1 Package(s)
Total download size: 758 k
Installed size: 1.7 M
Is this ok [y/N]:
Summary
Now that we've played a bit under the hood, let's put it all together into the summarized version:
Register the system
# subscription-manager register
Attach a subscription.
# subscription-manager attach --auto
OR
# subscription-manager attach --pool <UUID>
Note: the subscription-manager register & subscription-manager attach --auto commands can be combined into a single command:
# subscription-manager register --auto-attach
Disable every repo
# subscription-manager repos --disable '*'
Enable only the ones you want:
# subscription-manager repos --enable rhel-6-server-rpms --enable rhel-6-server-optional-rpms
Install Packages
# yum install foo bar baz
Hopefully, this blog post has provided an introduction to subscription-manager. Future articles will cover more!
À propos de l'auteur
Parcourir par canal
Automatisation
Les dernières nouveautés en matière d'automatisation informatique pour les technologies, les équipes et les environnements
Intelligence artificielle
Actualité sur les plateformes qui permettent aux clients d'exécuter des charges de travail d'IA sur tout type d'environnement
Cloud hybride ouvert
Découvrez comment créer un avenir flexible grâce au cloud hybride
Sécurité
Les dernières actualités sur la façon dont nous réduisons les risques dans tous les environnements et technologies
Edge computing
Actualité sur les plateformes qui simplifient les opérations en périphérie
Infrastructure
Les dernières nouveautés sur la plateforme Linux d'entreprise leader au monde
Applications
À l’intérieur de nos solutions aux défis d’application les plus difficiles
Programmes originaux
Histoires passionnantes de créateurs et de leaders de technologies d'entreprise
Produits
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Services cloud
- Voir tous les produits
Outils
- Formation et certification
- Mon compte
- Assistance client
- Ressources développeurs
- Rechercher un partenaire
- Red Hat Ecosystem Catalog
- Calculateur de valeur Red Hat
- Documentation
Essayer, acheter et vendre
Communication
- Contacter le service commercial
- Contactez notre service clientèle
- Contacter le service de formation
- Réseaux sociaux
À propos de Red Hat
Premier éditeur mondial de solutions Open Source pour les entreprises, nous fournissons des technologies Linux, cloud, de conteneurs et Kubernetes. Nous proposons des solutions stables qui aident les entreprises à jongler avec les divers environnements et plateformes, du cœur du datacenter à la périphérie du réseau.
Sélectionner une langue
Red Hat legal and privacy links
- À propos de Red Hat
- Carrières
- Événements
- Bureaux
- Contacter Red Hat
- Lire le blog Red Hat
- Diversité, équité et inclusion
- Cool Stuff Store
- Red Hat Summit