Chapter 1. Introduction

You can use host-based subscriptions for Red Hat Enterprise Linux virtual machines in the following virtualization platforms:

  • Red Hat Virtualization
  • Red Hat Enterprise Linux Virtualization (KVM)
  • Red Hat OpenStack Platform
  • VMware vSphere
  • Microsoft Hyper-V

1.1. Host-based Subscriptions

Virtual machines can use host-based subscriptions instead of consuming entitlements from physical subscriptions. A host-based subscription is attached to a hypervisor and entitles it to provide subscriptions to its virtual machines. Many host-based subscriptions provide entitlements for unlimited virtual machines.

To allow virtual machines to inherit subscriptions from their hypervisors, you must install and configure virt-who. Virt-who queries the virtualization platform and reports hypervisor and virtual machine information to Red Hat Satellite.

When a virtual machine is registered with an activation key that has no subscriptions attached and auto-attach set to true, and sufficient host-based subscriptions are available, one of the following behaviors occurs:

  • If the virtual machine has been reported by virt-who and a host-based subscription is attached to the hypervisor, the virtual machine inherits a subscription from the hypervisor.
  • If the virtual machine has been reported by virt-who, and the hypervisor is registered to Satellite but does not have a host-based subscription attached, a host-based subscription is attached to the hypervisor and inherited by the virtual machine.
  • If the virtual machine, or its hypervisor, has not been reported by virt-who, Satellite grants the virtual machine a temporary subscription, valid for up to seven days. After virt-who reports updated information, Satellite can determine which hypervisor the virtual machine is running on and attach a permanent subscription to the virtual machine.

If auto-attach is enabled, but virt-who is not running or there are no host-based subscriptions available, Satellite attaches physical subscriptions to the virtual machines instead, which might consume more entitlements than intended.

If auto-attach is not enabled, virtual machines cannot use host-based subscriptions.

To see if a subscription requires virt-who, in the Satellite web UI, navigate to Content > Subscriptions. If there is a tick in the Requires Virt-Who column, you must configure virt-who to use that subscription.

Virtual machine subscription process

This diagram shows the subscription workflow when a virtual machine has not yet been reported by virt-who:

Virtual Machine Subscription Process

1 Satellite provisions a virtual machine.

2 The virtual machine requests a subscription from Satellite Server.

3 Satellite Server grants the virtual machine a temporary subscription, valid for a maximum of seven days, while it determines which hypervisor the virtual machine belongs to.

4 Virt-who connects to the hypervisor or virtualization manager and requests information about its virtual machines.

5 The hypervisor or virtualization manager returns a list of its virtual machines to virt-who, including each UUID.

6 Virt-who reports the list of virtual machines and their hypervisors to Satellite Server.

7 Satellite Server attaches a permanent subscription to the virtual machine, if sufficient entitlements are available.

Additional resources

For more information about the Red Hat subscription model, see Introduction to Red Hat Subscription Management Workflows.

1.2. Configuration Overview

To allow virtual machines to inherit subscriptions from their hypervisors, complete the following steps:

Prerequisites

  • Import a Subscription Manifest that includes a host-based subscription into Satellite Server. For more information, see Importing a Subscription Manifest into Satellite Server in the Content Management Guide.
  • Ensure you have sufficient entitlements for the host-based subscription to cover all of the hypervisors you plan to use.
  • If you are using Microsoft Hyper-V, enable remote management on the hypervisors.
  • Create a user with read-only access and a non-expiring password on each hypervisor or virtualization manager. Virt-who uses this account to retrieve the list of virtual machines to report to Satellite Server.

    • For Red Hat products and Microsoft Hyper-V, create a virt-who user on each hypervisor that runs Red Hat Enterprise Linux virtual machines.
    • For VMware vSphere, create a virt-who user on the vCenter Server. The virt-who user requires at least read-only access to all objects in the vCenter Data Center.

Procedure Overview

  1. Section 1.3, “Virt-who Configuration for Each Virtualization Platform”. Use the table in this section to plan how to configure and deploy virt-who for your virtualization platform.
  2. Chapter 2, Creating an Activation Key for Virtual Machines. Create an activation key with auto-attach enabled and no subscriptions attached.
  3. Chapter 3, Attaching a Host-based Subscription to Hypervisors. Attach a host-based subscription to all of the hypervisors you plan to use.
  4. Chapter 4, Creating a virt-who Configuration. Create a virt-who configuration for each hypervisor or virtualization manager.
  5. Chapter 5, Deploying a virt-who Configuration. Deploy the virt-who configurations using the scripts generated by Satellite.
  6. Chapter 6, Registering Virtual Machines to use a Host-based Subscription. Register the virtual machines using the auto-attach activation key.

1.3. Virt-who Configuration for Each Virtualization Platform

Virt-who is configured using files that specify details such as the virtualization type and the hypervisor or virtualization manager to query. The supported configuration is different for each virtualization platform.

Typical virt-who configuration file

This example shows a typical virt-who configuration file created using the Satellite web UI or Hammer CLI:

[virt-who-config-1]
type=libvirt
hypervisor_id=hostname
owner=Default_Organization
env=Library
server=hypervisor1.example.com
username=virt_who_user
encrypted_password=$cr_password
rhsm_hostname=satellite.example.com
rhsm_username=virt_who_reporter_1
rhsm_encrypted_password=$user_password
rhsm_prefix=/rhsm

The type and server values depend on the virtualization platform. The following table provides more detail.

The username refers to a read-only user on the hypervisor or virtualization manager, which you must create before configuring virt-who. The rhsm-username refers to an automatically generated user that only has permissions for virt-who reporting to Satellite Server.

Important

Virt-who configurations using a type=rhemv are deprecated.

The xen hypervisor types are not supported.

The kubevirt hypervisor type is provided as a Technology Preview only.

Setup any existing or new virt-who configurations for Red Hat Virtualization using type=libvirt for each hypervisor as shown in the following table.

Required configuration for each virtualization platform

Use this table to plan your virt-who configuration:

Supported virtualization platformType specified in the configuration fileServer specified in the configuration fileServer where the configuration file is deployed

Red Hat Virtualization

RHEL Virtualization (KVM)

Red Hat OpenStack Platform

libvirt

Hypervisor (one file for each hypervisor)

Each hypervisor

VMware vSphere

esx

vCenter Server

Satellite Server, Capsule Server, or a dedicated RHEL server

Microsoft Hyper-V

hyperv

Hyper-V hypervisor (one file for each hypervisor)

Satellite Server, Capsule Server, or a dedicated RHEL server

Example virt-who configuration files

Example virt-who configuration files for several common hypervisor types are shown.

Example OpenStack virt-who configuration

[root@compute-node]# cat /etc/virt-who.d/virt-who-config-1.conf
This configuration file is managed via the virt-who configure plugin
manual edits will be deleted.
[virt-who-config-1]
type=libvirt
hypervisor_id=hostname
owner=ORG
env=Library
server=qemu:///system   <====
username=virt-who-user
encrypted_password=xxxxxxxxxxx
rhsm_hostname=satellite.example.com
rhsm_username=virt_who_reporter_1
rhsm_encrypted_password=yyyyyyyyyyy
rhsm_prefix=/rhsm

Example KVM virt-who configuration

type=libvirt
hypervisor_id=hostname
owner=gss
env=Library
server=qemu+ssh://root@libvirt.example.com/system
username=root
encrypted_password=33di3ksskd
rhsm_hostname=satellite.example.com
rhsm_username=virt_who_reporter_2
rhsm_encrypted_password=23233dj3j3k
rhsm_prefix=/rhsm

Example VMware virt-who configuration

type=esx
hypervisor_id=hostname
owner=gss
env=Library
server=vcenter.example.com
username=username_vcenter@example.com
encrypted_password=33di3ksskd
rhsm_hostname=satellite.example.com
rhsm_username=virt_who_reporter_2
rhsm_encrypted_password=23233dj3j3k
rhsm_prefix=/rhsm

Example RHEV virt-who configuration

If the host is registered to satellite:

$ cat /etc/virt-who.d/virt-who-config.conf

[virt-who-config]
type=libvirt
server=qemu:///system
owner=orgname
env=Library
hypervisor_id=hostname

If the host is not registered to satellite:

[virt-who-config]
type=libvirt
server=qemu:///system
owner=orgname
env=Library
hypervisor_id=hostname
rhsm_hostname=satellite.example.com
rhsm_username=virt_who_reporter_2
rhsm_encrypted_password=yyyyyyyyyy
rhsm_prefix=/rhsm