# Using subscription manager on RHEL

Red Hat Enterprise Linux (RHEL) gets updates and support through a subscription service.
There are different subscription levels, and which you choose depends on the purpose of a particular system.
For a cluster of mission critical servers, you'd obviously invest in Red Hat support, while for a test server you might choose for self-support.
Regardless of what level of support you invest in, it's important to register the computer running RHEL so you can manage it from your central Red Hat account, and so you receive important software updates.

## Registering RHEL

The first chance you get to register your RHEL system is during install.

![Registering RHEL](subscription-register.jpg)

Once a system is attached to your account, you can set the system purpose.
This is a useful way to influence what kinds of software repositories are activated for you, and what kinds of updates are significant to that computer.

This is an easy way to get your system registered early, and it means some sensible defaults are set once you're ready to use your new OS for the first time.

## Registering in the terminal

Using the `subscription-manager` command, you can register a new RHEL system with the `register` subcommand along with the user name of your Red Hat account:

```bash
$ sudo subscription-manager register --username shadowman
```

## System purpose

Once you've attached a computer to your Red Hat account, you can also define the purpose of that system.
This can help you organize your own data about your active machines, but it also helps the OS make intelligent decisions about some system preferences.
For instance, if you set a purpose of "Red Hat Enterprise Linux Server", then a subscription for that role is used when auto-attaching subscriptions.

First, look at your current settings.
There may not be any, depending on who installed the OS and what information they configured during that process.
My system got configured in advance, so my terminal returns this:

```bash
$ sudo subscription-manager syspurpose
[sudo] password for shadowman:
{
 "addons": [],
 "role": "Red Hat Enterprise Linux Workstation",
 "service_level_agreement": "Premium",
 "usage": "Production"
}
```

There are four attributes to a system's purpose: addons, role, service-level, and usage.
You can use any of these key terms to see the options available for them.
For instance, to see available options for the system's role:

```bash
$ sudo subscription-manager syspurpose role --list
[sudo] password for shadowman:
+-------------------------------------------+
              Available role
+-------------------------------------------+
- Red Hat Enterprise Linux Workstation
- Red Hat Enterprise Linux Server
- Red Hat Enterprise Linux Compute Node
```

What's available depends, in part, on your service level agreement (SLA).
If you're using RHEL with self-support only, then the only usage setting available is "Development/Test".
If you want to increase your level of support, log in to the Red Hat website or speak to sales.

To set a value for system purpose, use the `--set` option:

```bash
$ sudo subscription-manager syspurpose role --set \
"Red Hat Enterprise Linux Server"

[sudo] password for shadowman:
role set to "Red Hat Enterprise Linux Server".
```

## Managing systems

When you're responsible for any number of computers, it's important to understand how they're being maintained and updated.
Using the Subscription Manager ensures that your computers are visible to your team, and that mission critical machines are signed up for vital updates.
Whether you interact with subscriptions at install time, from the terminal, or through [Cockpit](https://www.redhat.com/sysadmin/intro-cockpit), Subscription Manager is an important component to a well-organized fleet.