RED HAT ENTERPRISE LINUX
Registering Systems forRed Hat Support
Subscription Management and System Registration
CIS126RH | RHEL System Administration 1 Mesa Community College
Welcome to this module on registering RHEL systems for Red Hat support. Registration is one of the first tasks you'll perform after installing RHEL, and it's essential for receiving software updates, security patches, and accessing Red Hat's support resources. Understanding the subscription model and registration process is not only practical for day-to-day administration but also tested on the RHCSA exam. Today we'll cover why registration matters, the different methods available, and how to manage subscriptions throughout the lifecycle of your systems. By the end of this session, you'll be able to confidently register systems, attach subscriptions, and troubleshoot common registration issues.
Learning Objectives
1
Understand Red Hat subscriptions
Learn the subscription model and what registration provides
2
Register systems with subscription-manager
Use the command-line tool to register and attach subscriptions
3
Manage repositories and content
Enable and disable software repositories based on needs
4
Troubleshoot registration issues
Diagnose and resolve common registration problems
We have four learning objectives for this module. First, we'll understand Red Hat's subscription model - what you get with a subscription, why registration is required, and how it differs from traditional software licensing. Second, we'll master subscription-manager, the primary command-line tool for registering systems and managing subscriptions. This is the tool you'll use on the RHCSA exam. Third, we'll learn to manage repositories - enabling access to specific software channels based on what your systems need. Finally, we'll cover troubleshooting common registration issues, because in the real world, things don't always work perfectly the first time. Let's begin by understanding what Red Hat subscriptions actually provide.
Why Register Your System?
Registration connects your RHEL system to Red Hat's infrastructure, enabling access to software updates, security patches, and support services.
🔄 Software Updates
Access to the latest packages, bug fixes, and feature enhancements
🔒 Security Patches
Critical security updates to protect against vulnerabilities
📞 Technical Support
Access to Red Hat's support team and knowledge base
📊 Red Hat Insights
Proactive system analysis and recommendations
Registration is essential for RHEL systems in production. Without registration, your system cannot receive software updates or security patches from Red Hat's repositories. This is fundamentally different from community distributions where updates are freely available. With registration, you get access to software updates - not just security fixes but also bug fixes and new features backported to your RHEL version. Security patches are critical - Red Hat's security team monitors for vulnerabilities and provides timely updates. An unregistered system accumulates security debt rapidly. Technical support access means when something goes wrong at 3 AM, you can open a support case with Red Hat engineers who know the system inside and out. The knowledge base contains thousands of solutions to common problems. Red Hat Insights is a cloud service that analyzes your registered systems, identifying potential issues before they cause problems - things like known bugs affecting your configuration, security vulnerabilities, or performance recommendations. All of these require registration.
The Subscription Model
What's Included:
Right to use RHEL software
Access to software repositories
Security and bug fix updates
Technical support (varies by tier)
Red Hat Customer Portal access
Certifications and compliance docs
Subscription Types:
Physical/Virtual: Per socket pair
Virtual Datacenter: Unlimited VMs
Cloud Access: BYOS to cloud
Developer: Free for individuals
Academic: Educational pricing
Free Developer Subscription: Individual developers can get a free subscription for up to 16 systems at developers.redhat.com
Red Hat's subscription model is fundamentally different from traditional software licensing. You're not buying software - the source code is freely available. You're subscribing to a service that includes the right to use the compiled, tested RHEL binaries, access to update repositories, support services, and more. Subscriptions include access to the Customer Portal where you can download software, read documentation, search the knowledge base, and open support cases. Different subscription types serve different needs. Physical and virtual subscriptions are typically sold per socket pair - a two-socket server needs one subscription. Virtual datacenter subscriptions allow unlimited VMs on a hypervisor. Cloud access lets you bring your own subscription to AWS, Azure, or Google Cloud instead of paying the cloud provider's premium for RHEL. For learning and development, the free Developer Subscription is invaluable - register at developers.redhat.com and you can legally run RHEL on up to 16 systems. This is perfect for labs, learning, and personal projects. The subscription model aligns Red Hat's success with yours - they only succeed if you renew, which incentivizes them to provide genuine value.
Registration Architecture
RHEL System
subscription-manager
⟷
Red Hat CDN
Subscription Management
↓ provides access to ↓
Base OS
rhel-9-baseos
AppStream
rhel-9-appstream
Optional
Supplementary repos
Alternative: Organizations can use Satellite Server for local subscription management and content hosting.
Let's understand the registration architecture. Your RHEL system uses the subscription-manager tool to communicate with Red Hat's Content Delivery Network, or CDN. During registration, your system authenticates with your Red Hat account credentials, and Red Hat's subscription management service verifies your entitlements. Once registered and subscribed, your system gains access to software repositories. The primary repositories for RHEL 9 are BaseOS, which contains the core operating system packages, and AppStream, which contains applications, languages, and tools in various versions called modules. Additional repositories may be available depending on your subscription - things like supplementary packages, high availability add-ons, or developer tools. For enterprise environments with many systems, Red Hat offers Satellite Server. Satellite acts as a local proxy for subscription management and can host repository content on-premises. This reduces internet bandwidth, provides greater control, and enables content management features like custom repositories and lifecycle environments. For this course, we focus on direct registration to Red Hat's CDN, but the subscription-manager commands work the same way with Satellite.
Registration Methods
🖥️ Command Line
subscription-manager Full control, scriptableRecommended for servers
🖱️ GNOME GUI
Settings → Subscription User-friendly interfaceGood for workstations
⚙️ During Install
Anaconda installer Register during setupEnables install-time repos
sudo subscription-manager register --username=your_username
rhsm --organization=ORG_ID --activation-key=KEY_NAME
There are several ways to register a RHEL system, each suited to different scenarios. Command-line registration using subscription-manager is the most versatile and what we'll focus on. It's scriptable, works over SSH, and provides the most control. This is what you'll use on servers and during the RHCSA exam. For desktop workstations with GNOME, there's a graphical interface in Settings under Subscription Manager. This is user-friendly and fine for individual workstations, but doesn't scale for managing many systems. During installation, the Anaconda installer can register the system before package installation completes. This is useful because it enables access to additional repositories during the install process. For automated deployments with Kickstart, you can include registration in your Kickstart file using activation keys. Activation keys are pre-configured registration tokens that don't require embedding passwords in scripts - we'll cover those shortly. For this course, master the command-line method with subscription-manager. The concepts transfer to the other methods, and command-line skills are essential for server administration.
Basic Registration
sudo subscription-manager register
Registering to: subscription.rhsm.redhat.com:443/subscription
Username: your_username
Password:
The system has been registered with ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
sudo subscription-manager register --username=your_username --password=your_password
sudo subscription-manager register --username=your_username --auto-attach
sudo subscription-manager status
+-------------------------------------------+
System Status Details
+-------------------------------------------+
Overall Status: Current
Let's walk through basic registration. The simplest method is running subscription-manager register, which prompts for your Red Hat username and password interactively. This is the most secure method as your password isn't stored in shell history. The system connects to Red Hat's subscription service, authenticates, and registers your system. You'll receive a system ID - a unique identifier for this registration. You can also provide credentials on the command line, which is useful for scripting but be aware the password may be visible in process listings or shell history. The --auto-attach flag is convenient - after registration, it automatically selects and attaches the best matching subscription from your account. Without this, registration alone doesn't give you repository access; you need to attach a subscription as a second step. After registration, use subscription-manager status to verify everything is working. "Overall Status: Current" means your system is registered with a valid subscription. If you see warnings about entitlements, you may need to attach a subscription manually.
Using Activation Keys
Activation Keys are pre-configured registration tokens that specify subscriptions, repositories, and settings without requiring username/password.
sudo subscription-manager register \
--org=YOUR_ORG_ID \
--activationkey=your_activation_key
# Customer Portal → Subscriptions → Organization ID
# Customer Portal → Activation Keys
# Or in Satellite Server
Benefits: No passwords in scripts • Pre-configured subscriptions • Consistent registration across systems • Easy automation
Activation keys are the preferred method for automated or bulk registration. An activation key is created in the Red Hat Customer Portal or Satellite Server and encapsulates registration settings - which subscriptions to attach, which repositories to enable, and other configuration options. The key advantage is security - you don't need to embed passwords in scripts or Kickstart files. Activation keys can be shared with teams or included in automation without exposing credentials. They also ensure consistency - every system registered with the same key gets the same configuration. To use an activation key, you need two pieces of information: your organization ID and the activation key name. The organization ID identifies your Red Hat account - you can find it in the Customer Portal under Subscriptions. Activation keys are created in the Customer Portal under Activation Keys section, where you configure which subscriptions and content should be associated with systems using that key. For enterprise environments, activation keys combined with Kickstart enable fully automated deployment where systems register and configure themselves during installation.
Attaching Subscriptions
sudo subscription-manager list --available
sudo subscription-manager attach --auto
sudo subscription-manager attach --pool=POOL_ID
sudo subscription-manager list --consumed
+-------------------------------------------+
Consumed Subscriptions
+-------------------------------------------+
Subscription Name: Red Hat Enterprise Linux Server
Pool ID: xxxx-xxxx-xxxx-xxxx
Active: True
Ends: 12/31/2025
sudo subscription-manager remove --pool=POOL_ID
After registration, you need to attach a subscription to access repositories. If you didn't use --auto-attach during registration, you'll need to do this separately. List --available shows all subscriptions in your account that could be attached to this system. Each subscription has a Pool ID - a unique identifier for that subscription instance. The --auto-attach option lets subscription-manager automatically select the best matching subscription based on your system's characteristics - architecture, product certificates, and so on. This works well for simple environments. For more control, you can attach a specific subscription using its Pool ID. This is useful when you have multiple subscription types and want to ensure a particular one is used. List --consumed shows what's currently attached, including the subscription name, pool ID, whether it's active, and when it expires. To remove a subscription - perhaps to free it for another system - use the remove command with the pool ID. In environments with Satellite or activation keys, subscription attachment is usually pre-configured, making this step automatic.
Managing Repositories
sudo subscription-manager repos --list
sudo subscription-manager repos --list-enabled
sudo subscription-manager repos --enable=rhel-9-for-x86_64-appstream-rpms
sudo subscription-manager repos --disable=rhel-9-for-x86_64-supplementary-rpms
sudo subscription-manager repos \
--enable=codeready-builder-for-rhel-9-x86_64-rpms \
--enable=rhel-9-for-x86_64-baseos-rpms
dnf repolist
Once subscribed, you can manage which repositories are enabled. By default, RHEL enables the BaseOS and AppStream repositories - these contain the core operating system and most software you'll need. Additional repositories are available but disabled by default. The repos --list command shows all repositories your subscription provides access to, both enabled and disabled. This can be a long list depending on your subscription. Use --list-enabled to see just what's currently active. To enable a repository, use --enable with the repository ID. Repository IDs follow a naming convention that includes the RHEL version and architecture. For example, rhel-9-for-x86_64-appstream-rpms is the AppStream repository for RHEL 9 on 64-bit x86. One commonly needed repository is CodeReady Builder, which contains development packages like header files. Another is the supplementary repository with additional packages. You can enable multiple repositories in a single command. After changing repository settings, verify with dnf repolist that your expected repositories are active. The repository configuration is stored in /etc/yum.repos.d/redhat.repo, managed by subscription-manager.
Common Repositories
Repository
Content
Default
rhel-9-for-x86_64-baseos-rpms
Core OS, kernel, basic utilities
✓ Enabled
rhel-9-for-x86_64-appstream-rpms
Applications, languages, modules
✓ Enabled
codeready-builder-for-rhel-9-*-rpms
Development headers, build deps
Disabled
rhel-9-for-x86_64-supplementary-rpms
Additional packages
Disabled
rhel-9-for-x86_64-highavailability-rpms
HA clustering (add-on)
Disabled
Note: Repository names include architecture (x86_64, aarch64) and RHEL version. Some require add-on subscriptions.
Let's familiarize ourselves with the most common RHEL repositories. BaseOS contains the core operating system - the kernel, system utilities, and foundational packages. It's always enabled and uses traditional RPM versioning with updates throughout the RHEL lifecycle. AppStream contains applications, programming languages, databases, and web servers. It uses the module system to provide multiple versions of software. Both BaseOS and AppStream are enabled by default and are what most systems need. CodeReady Builder, formerly known as PowerTools in CentOS, contains development packages - header files, development libraries, and build dependencies. If you're compiling software or need to build RPMs, you'll often need to enable this. The Supplementary repository contains additional packages that aren't part of the core distribution. High Availability contains packages for clustering - Pacemaker, Corosync, and related tools. This requires an HA add-on subscription. Note that repository names encode the RHEL version and architecture. RHEL 8 repositories have "8" instead of "9" in the name. ARM systems use "aarch64" instead of "x86_64". Always use the correct repository name for your system.
Checking Status
sudo subscription-manager status
+-------------------------------------------+
System Status Details
+-------------------------------------------+
Overall Status: Current
System Purpose Status: Not Specified
sudo subscription-manager identity
system identity: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
name: server01.example.com
org name: Your Organization
org ID: 1234567
sudo subscription-manager list --consumed
sudo subscription-manager list --installed
Knowing how to check registration status is essential for troubleshooting. The status command gives an overall view - "Current" means everything is good, while warnings indicate problems like expired subscriptions or missing entitlements. System Purpose Status relates to a feature where you can declare what role the system serves, which helps with compliance reporting. The identity command shows your system's unique registration ID, hostname as registered, organization name, and org ID. This is useful for verifying a system is registered to the correct account, especially in organizations with multiple Red Hat accounts. List --consumed shows attached subscriptions with details like expiration dates. If this is empty after registration, you need to attach a subscription. List --installed shows what Red Hat products are installed on the system based on product certificates. This helps subscription-manager determine which subscriptions are applicable. Together, these commands give you a complete picture of your system's registration state. When troubleshooting, start with status for the overview, then drill down with the other commands as needed.
Unregistering Systems
sudo subscription-manager unregister
Unregistering from: subscription.rhsm.redhat.com:443/subscription
System has been unregistered.
sudo subscription-manager clean
All local data removed
sudo subscription-manager remove --all
# Customer Portal → Systems → Delete System
⚠ Important: Always unregister before decommissioning a system. Orphaned registrations consume subscription entitlements.
Properly unregistering systems is just as important as registering them. When you decommission a server, rebuild a system, or migrate to new hardware, you should unregister to free up the subscription entitlement. The unregister command removes the system from Red Hat's subscription management. This releases any attached subscriptions back to your pool for use by other systems. Without this step, the entitlement remains consumed by a system that no longer exists. The clean command removes all local subscription data - certificates, identity, and cache files. This is useful when you want to start fresh, perhaps after unregistering to re-register with different settings. Remove --all detaches all subscriptions but keeps the system registered. This is useful if you need to change which subscription is attached. If you've already deleted a system without unregistering - say, you destroyed a VM - you can manually remove it from the Customer Portal under Systems. This releases the subscription, though it's better practice to unregister before deletion. For VM environments, consider automation that includes unregistration as part of the VM lifecycle.
System Purpose
System Purpose attributes help Red Hat understand how systems are used, improving subscription recommendations and compliance reporting.
sudo subscription-manager syspurpose set-role "Red Hat Enterprise Linux Server"
sudo subscription-manager syspurpose set-usage "Production"
sudo subscription-manager syspurpose set-sla "Premium"
sudo subscription-manager syspurpose show
Current Usage: Production
Current Role: Red Hat Enterprise Linux Server
Current Service Level Agreement: Premium
sudo subscription-manager register --username=USER \
--auto-attach \
--service-level=Premium \
--usage=Production
System Purpose is a feature that lets you declare metadata about how a system is used. This information helps with subscription management, especially in large environments. The three main attributes are Role, Usage, and Service Level Agreement. Role indicates what the system is - a server, workstation, or compute node. Usage indicates the environment - production, development, testing, or disaster recovery. SLA indicates your service level - Premium for 24x7 support, Standard for business hours, or Self-Support. Setting these attributes helps subscription-manager make better auto-attach decisions and helps Red Hat provide better recommendations through Insights. It's also valuable for compliance reporting - you can easily identify all production servers or systems under Premium support. You can set purpose attributes after registration using syspurpose commands, or during registration with the appropriate flags. The show command displays current settings. While System Purpose is optional, it's a good practice to configure it, especially in enterprise environments where understanding your system landscape matters for compliance and planning.
Troubleshooting Registration
Common Issues:
Network/proxy blocking connection
Invalid or expired credentials
No available subscriptions
System already registered
Clock synchronization issues
Diagnostic Commands:
subscription-manager status
subscription-manager identity
cat /var/log/rhsm/rhsm.log
subscription-manager facts
ping subscription.rhsm.redhat.com
curl -v https://subscription.rhsm.redhat.com:443/subscription
sudo subscription-manager unregister
sudo subscription-manager clean
sudo subscription-manager register --username=USER --auto-attach
When registration fails, systematic troubleshooting helps identify the cause. Network issues are common - verify the system can reach subscription.rhsm.redhat.com on port 443. If you're behind a proxy, subscription-manager needs proxy configuration. Invalid credentials are straightforward - verify your username and password work on the Customer Portal website. No available subscriptions means your account doesn't have free entitlements; check your subscription inventory in the Portal. If a system is already registered, you might see errors; use unregister first if you need to re-register. Clock synchronization issues cause certificate validation failures - ensure NTP is working. For diagnostics, check the rhsm.log file for detailed error messages. The facts command shows system information that subscription-manager sends to Red Hat - useful for understanding why auto-attach might not find a match. When all else fails, a clean re-registration often resolves mysterious issues. Unregister, clean to remove all local data, then register fresh. This eliminates any corrupted state and starts over.
Proxy Configuration
sudo subscription-manager config --server.proxy_hostname=proxy.example.com
sudo subscription-manager config --server.proxy_port=3128
sudo subscription-manager config --server.proxy_user=proxyuser
sudo subscription-manager config --server.proxy_password=proxypass
sudo subscription-manager config
[server]
hostname = subscription.rhsm.redhat.com
proxy_hostname = proxy.example.com
proxy_port = 3128
cat /etc/rhsm/rhsm.conf
Note: Also configure proxy for dnf in /etc/dnf/dnf.conf to access repositories through the proxy.
In enterprise environments, systems often access the internet through a proxy server. Subscription-manager needs to be configured to use this proxy for registration and subscription management. Use the config command to set proxy settings. The proxy_hostname and proxy_port are the minimum required. If your proxy requires authentication, also set proxy_user and proxy_password. The config command without arguments displays current settings, letting you verify the configuration. Settings are stored in /etc/rhsm/rhsm.conf, which you can also edit directly. Remember that subscription-manager proxy settings only affect registration and subscription operations. For accessing repositories with dnf, you need separate proxy configuration in /etc/dnf/dnf.conf. Add lines like proxy=http://proxy.example.com:3128 and optionally proxy_username and proxy_password. In highly restricted environments, you might also need to configure proxy settings for Insights and other Red Hat services. Satellite Server is often a better solution for such environments, acting as a local content source that eliminates the need for each system to access the internet directly.
Red Hat Insights
Red Hat Insights is a SaaS platform that analyzes registered systems to identify risks, recommend optimizations, and ensure compliance.
sudo dnf install insights-client
sudo insights-client --register
sudo insights-client
sudo insights-client --status
# console.redhat.com → Insights → Advisor
Included Free: Insights is included with RHEL subscriptions at no additional cost.
Red Hat Insights is a powerful tool included with your RHEL subscription. It's a cloud service that analyzes your registered systems and provides actionable recommendations. The Insights client collects system configuration data and sends it to Red Hat's analysis platform. This data is analyzed against known issues, security vulnerabilities, and best practices. The Advisor feature shows recommendations ranked by severity - from critical security issues to minor optimizations. Vulnerability analysis cross-references your installed packages with CVE databases. Compliance features help verify systems meet security baselines like DISA STIG or PCI-DSS. Patch and Drift features show systems needing updates and configuration differences between systems. After installing insights-client and registering, the client runs automatically on a schedule. You can also run it manually. View results in the Insights dashboard at console.redhat.com. For privacy-conscious environments, you can configure what data is collected and redact sensitive information. Insights provides significant value, especially at scale - proactively identifying issues before they cause outages.
Key Takeaways
1
Registration enables access to updates, security patches, and support services
2
subscription-manager is the primary tool: register, attach, repos, status
3
Activation keys enable secure, automated registration without passwords
4
Enable additional repositories as needed (CodeReady Builder, Supplementary)
Let's summarize what we've learned about system registration. Registration is essential for RHEL systems - it enables access to software repositories, security updates, and Red Hat's support infrastructure. An unregistered system cannot receive updates and accumulates security vulnerabilities. The subscription-manager command is your primary tool. The key subcommands are register to connect to Red Hat, attach to assign subscriptions, repos to manage repository access, and status to verify everything is working. These are the commands you'll use on the RHCSA exam. For automation and enterprise deployments, activation keys provide secure registration without embedding passwords in scripts. Create them in the Customer Portal and use them with the --org and --activationkey options. Beyond the default BaseOS and AppStream repositories, you may need to enable additional repos like CodeReady Builder for development packages. Use subscription-manager repos to manage these. In your lab exercises, practice the complete registration lifecycle - register, verify status, enable repos, and unregister. If you don't have a paid subscription, remember the free Developer Subscription at developers.redhat.com. Next module, we'll use these registered systems to manage software with DNF.
LAB EXERCISES
Register a system using subscription-manager with your Red Hat account
List available and consumed subscriptions
Enable the CodeReady Builder repository
Check system registration status and identity
Unregister and re-register to practice the full lifecycle
Next: Getting AI-assisted Help with Red Hat Enterprise Linux Lightspeed
In your lab exercises, practice the complete registration lifecycle - register, verify status, enable repos, and unregister. If you don't have a paid subscription, remember the free Developer Subscription at developers.redhat.com. Next module, we'll use these registered systems to manage software with DNF.