This article was originally published on the Red Hat Customer Portal. The information may no longer be current.
Overview
Many of the various subscriptions that Red Hat offers are sold with the following spirit & terms
- A subscription is purchased based upon the socket count of a hypervisor.
- The subscriptions allows some number of quests (usually an UNLIMITED quantity, but sometimes values of 1 & 4 are used) to be instantiated on that hypervisor.
These subscriptions require virt-who, the daemon that collects & reports host/guest mapping. This document aims to provide some further insight to help determine:
- when virt-who is required
- How to configure virt-who to support these subscription types.
Improvements to 'rct', the 'Red Hat Certificate Tool'
As a user of Satellite 6, it isn't always easy to determine whether a subscription requires virt-who. Occasionally, you can determine it from its name. Example, I can deduce that the Red Hat Enterprise Linux (1-2 Sockets), Premium, with Unlimited Guests subscription can be used to support a 1-2 socket hypervisor, with an unlimited number of guests.
It isn't always that easy to determine this based upon solely the product name. Included in the subscription-manager-1.17.10 package and newer are enhancements to the rct command, allowing the command to inform the user if virt-who is required for the deployment. rct does this by looking at the various metadata files that are included in a subscription manifest and displaying the VIRTLIMIT property. If the VIRTLIMIT property is set to a value greater than 0 (including UNLIMITED), then virt-who is required for the proper usage of the subscription.
NOTE: subscription-manager-1.17.10 ships with RHEL 7.3 (at the time of this writing [16 Sep 2016] is in Beta) and Fedora 24.
If you don't want to wait until RHEL7.3 is released, you can apply this patch to RHEL7.2. by running the following.
# cd /usr/share/rhsm/rct/
# mv manifest_commands.py{,-old}
# mv manifest_commands.pyc{,-old}
# mv manifest_commands.pyo{,-old}
# wget https://raw.githubusercontent.com/candlepin/subscription-manager/master/src/rct/manifest_commands.py
Let's take a look at the subscription manifest. In this example there are OpenShift Enterprise, Premium (1-2 Sockets) subscriptions, which I plan to use with my Satellite 6 installation.
↪ rct cat-manifest --no-content OpenShift.zip
+-------------------------------------------+
Manifest
+-------------------------------------------+
General:
Server:
Server Version: 0.9.51.15-1
Date Created: 2016-09-16T01:48:56.254+0000
Creator: candlepin_admin
Consumer:
Name: OpenShift
UUID: [REDACTED]
Type: satellite
Subscription:
Name: OpenShift Enterprise, Premium (1-2 Sockets)
Quantity: 50
Created: 2016-09-16T01:47:59.000+0000
Start Date: 2016-07-04T04:00:00.000+0000
End Date: 2017-07-04T03:59:59.000+0000
Service Level: Premium
Service Type: L1-L3
Architectures: x86_64,ppc64le,ppc64,ia64,aarch64,ppc,s390,x86,s390x
SKU: MCT2862
Contract: [REDACTED]
Order: [REDACTED]
Account: [REDACTED]
Virt Limit: unlimited
Requires Virt-who: True
Entitlement File: export/entitlements/8a99f983572c0817015730adcedf14ba.json
Certificate File: export/entitlement_certificates/8154833385121903284.pem
Certificate Version: 3.2
Provided Products:
69: Red Hat Enterprise Linux Server
180: Red Hat Beta
185: JBoss Enterprise Web Server
193: Red Hat OpenShift Enterprise Infrastructure
194: Red Hat OpenShift Enterprise Application Node
197: Red Hat OpenShift Enterprise Client Tools
201: Red Hat Software Collections (for RHEL Server)
205: Red Hat Software Collections Beta (for RHEL Server)
240: Oracle Java (for RHEL Server)
271: Red Hat Enterprise Linux Atomic Host
290: Red Hat OpenShift Container Platform
311: Red Hat Single Sign-On
317: dotNET on RHEL (for RHEL Server)
318: dotNET on RHEL Beta (for RHEL Server)
As you can see in the output above, this subscription requires virt-who as:
- The Virt Limit field is set to UNLIMITED and
- The Requires Virt-who field is True
Note: The converse of this is true.. If a subscription has:
- The Virt Limit field is 0 or undefined and
- The Requires Virt-who field set to False
The subscription does NOT require virt-who.
Setting up your Satellite environment to support subscriptions that host multiple guests.
Note: it is assumed that:
- You have Satellite 6 installed.
- You've updated your subscription manifest to the Organization you wish to work with.
Firstly, we'll need to install virt-who. For most usages, virt-who should be installed on the Satellite. More detailed configuration of virt-who is covered in the Virtual Instance Guide
# yum install -y virt-who
Next, configure virt-who for your hypervisor platform. This example uses a VMWare backend. Copy the template file /etc/virt-who.d/template.conf and edit it appropriately. Example follows:
# cat /etc/virt-who.d/esx.conf
[esx-farm]
# type = esx,rhevm,kvm
type=esx
# server = vcenter OR individual ESXi host
server=vcenter.example.com
# username syntax for Active Directory users is either
# UPN based = user@domain.com
# NETBIOS based domain\\user.
# Note the double slashes above.
username=administrator@vSphere.local
# Get encrypted password from virt-who-password
encrypted_password=31453894e9a4adb95152db1789d0040
# Organization Label in Satellite 6 where the hypervisors
# should be reported to.
owner=RedHat
# Environment
env=Library
# Report hypervisors with hostname and not UUID because UUIDs are ugly.
hypervisor_id=hostname
# Hostname of Satellite
rhsm_hostname=satellite.example.com
# Username in Satellite
rhsm_username=admin
# Again, use virt-who-password to create.
rhsm_encrypted_password=a99328dc3b8643dfad060bb07fe61aa
# Prefix. (set to /rhsm for Satellite 6)
rhsm_prefix=/rhsm
start virt-who
systemctl start virt-who
Now in the UI, under Hosts->Content Hosts you'll see your new hypervisors. (Click to Enlarge)
Attaching subscriptions to the hypervisors.
As this OpenShift subscription is purchased on a per hypervisor basis, it needs to be attached to a hypervisor so that the guest subscriptions are unlocked.
First, let's get the list of subscriptions and their IDs as we'll need those later.
# hammer --output json subscription list --organization RedHat
[
{
"ID": 1,
"UUID": "2c91830e5730bd83015730dc9a270078",
"Name": "OpenShift Enterprise, Premium (1-2 Sockets)",
"Contract": 11002796,
"Account": 5699795,
"Support": "Premium",
"Quantity": 50,
"Consumed": 0,
"End Date": "2017-07-04T03:59:59.000+0000",
"Attached": 0
}
]
We can see that the subscription ID is 1. We can use that ID to attach the subscription to our hypervisors. Let's see their names:
# hammer host list
---|-----------------------------------|------------------|------------|--------------|------------------
ID | NAME | OPERATING SYSTEM | HOST GROUP | IP | MAC
---|-----------------------------------|------------------|------------|--------------|------------------
1 | satellite.example.com | RedHat 7.2 | | 172.17.3.142 | 00:1a:4a:16:01:5c
3 | virt-who-esxi01.example.com-1 | | | |
2 | virt-who-esxi02.example.com-1 | | | |
---|-----------------------------------|------------------|------------|--------------|------------------
Let's actually attach the subscriptions now. You can do this via the UI (under Hosts->Content->$HYPERVISOR_HOSTNAME->Subscriptions->Add) or in Satellite 6.2.2 and above, via hammer.
# hammer host subscription attach --host virt-who-esxi01.example.com-1 --subscription-id 1
Subscription attached to the host successfully
# hammer host subscription attach --host virt-who-esxi02.example.com-1 --subscription-id 1
Subscription attached to the host successfully
In the UI, under Content->Red Hat Subscriptions we can see that the subscriptions for the virtual guests are now available. (Click to Enlarge)
Perfect! Now that we have properly configured our hypervisors to use these OpenShift subscriptions, we can now register a virtual guest.
Registering a virtual guest.
NOTE: It is assumed that the client that you are registering meets the minimal requirements to be managed via Satellite 6:
- The minimal operating system versions are Red Hat Enterprise Linux versions:
- >= 5.7
- >= 6.1
- >= 7.0
- It is assumed that the subscription-manager package is already installed.
This example, uses a RHEL 7.2 client. On the client, download the katello-ca-consumer-latest package from the Satellite and install it. This package contains the required SSL certificates for the client to verify the Satellite's identity AND it properly configures subscription-manager for usage with the Satellite.
yum install -y http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
katello-ca-consumer-latest.noarch.rpm | 6.4 kB 00:00:00
Examining /var/tmp/yum-root-udiZgA/katello-ca-consumer-latest.noarch.rpm: katello-ca-consumer-satellite.example.com-1.0-1.noarch
Marking /var/tmp/yum-root-udiZgA/katello-ca-consumer-latest.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package katello-ca-consumer-satellite.example.com.noarch 0:1.0-1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
========================================================================================================================================================================================
Package Arch Version Repository Size
========================================================================================================================================================================================
Installing:
katello-ca-consumer-satellite.example.com noarch 1.0-1 /katello-ca-consumer-latest.noarch 14 k
Transaction Summary
========================================================================================================================================================================================
Install 1 Package
Total size: 14 k
Installed size: 14 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : katello-ca-consumer-satellite.example.com-1.0-1.noarch 1/1
Verifying : katello-ca-consumer-satellite.example.com-1.0-1.noarch 1/1
Installed:
katello-ca-consumer-satellite.example.com.noarch 0:1.0-1
Next, the client can be registered. At registration time, we want to use the --auto-attach option, which allows the virtual guest to select an appropriate subscription. In this case, the most appropriate subscription would be one of the virtual guest subscriptions that was created in the previous step. Using the --auto-attach option allows the guest to pick which virtual guest subscription that was appropriate, regardless of which hypervisor it resides on. In this example we are registering the client via username/password. For more automated registration, Activation Keys can be used with similar effect.
[root@openshift-client ~]# subscription-manager register --auto-attach
Registering to: satellite.example.com:443/rhsm
Username: admin
Password:
The system has been registered with ID: dea6ec9a-7ed3-464e-ad65-c9b12d4d62ca
Installed Product Current Status:
Product Name: Red Hat Enterprise Linux Server
Status: Subscribed
And let's confirm that the subscription that was attached is correct.
[root@openshift-client product]# subscription-manager list --consumed
+-------------------------------------------+
Consumed Subscriptions
+-------------------------------------------+
Subscription Name: OpenShift Enterprise, Premium (1-2 Sockets)
Provides: Oracle Java (for RHEL Server)
JBoss Enterprise Web Server
Red Hat Enterprise Linux Server
Red Hat Enterprise Linux Atomic Host
dotNET on RHEL Beta (for RHEL Server)
Red Hat Beta
Red Hat Software Collections (for RHEL Server)
dotNET on RHEL (for RHEL Server)
Red Hat OpenShift Enterprise Application Node
Red Hat Software Collections Beta (for RHEL Server)
Red Hat Single Sign-On
Red Hat OpenShift Enterprise Infrastructure
Red Hat OpenShift Container Platform
Red Hat OpenShift Enterprise Client Tools
SKU: MCT2862
Contract: ********
Account: ********
Serial: 2750063811407706484
Pool ID: 2c91830e5730bd8301573108000f00eb
Provides Management: No
Active: True
Quantity Used: 1
Service Level: Premium
Service Type: L1-L3
Status Details: Subscription is current
Subscription Type: Stackable
Starts: 07/04/2016
Ends: 07/03/2017
System Type: Virtual
We can see that the guest is using the 'Virtual' subscription type. We can confirm this in the UI by visiting the Content->Red Hat Subscriptions Page again (click to enlarge)
Now we can enable repositories and install content provided by this subscription.
Summary
Hopefully this document has explained how to configure virt-who and Satellite 6 to support subscriptions that provide multiple virtual guests.
Further Reading
- Subscription-manager for the former Red Hat Network User: Part 1
- Subscription-manager for the former Red Hat Network User: Part 2 - Subscription-manager learns grep
- Subscription-manager for the former Red Hat Network User: Part 3 - Understanding virt-who
- Subscription-manager for the former Red Hat Network User: Part 4 - Understanding Subscription Manifests
- Activation Key Enhancements with Red Hat Satellite 6.1
- Red Hat Satellite Virtual Instances Guide
About the author
Browse by channel
Automation
The latest on IT automation for tech, teams, and environments
Artificial intelligence
Updates on the platforms that free customers to run AI workloads anywhere
Open hybrid cloud
Explore how we build a more flexible future with hybrid cloud
Security
The latest on how we reduce risks across environments and technologies
Edge computing
Updates on the platforms that simplify operations at the edge
Infrastructure
The latest on the world’s leading enterprise Linux platform
Applications
Inside our solutions to the toughest application challenges
Original shows
Entertaining stories from the makers and leaders in enterprise tech
Products
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Cloud services
- See all products
Tools
- Training and certification
- My account
- Customer support
- Developer resources
- Find a partner
- Red Hat Ecosystem Catalog
- Red Hat value calculator
- Documentation
Try, buy, & sell
Communicate
About Red Hat
We’re the world’s leading provider of enterprise open source solutions—including Linux, cloud, container, and Kubernetes. We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.
Select a language
Red Hat legal and privacy links
- About Red Hat
- Jobs
- Events
- Locations
- Contact Red Hat
- Red Hat Blog
- Diversity, equity, and inclusion
- Cool Stuff Store
- Red Hat Summit