Red Hat Subscription Management の使用を開始する

更新 -

Red Hat Subscription Management (RHSM) サービスで Red Hat サブスクリプションおよびエンタイトルメントを管理するために、グラフィカルツールとコマンドラインツールが利用できます。ここでは、Subscription Management がどのように動作するかについて簡単に紹介します。その後、Subscription Management コンポーネントの概要と、Red Hat ソフトウェア製品を登録する際に発生する可能性がある問題のトラブルシューティング方法について説明します。

Red Hat Enterprise Linux 7 で Subscription Management を使用する

Red Hat Enterprise Linux (RHEL) 7 では、RHEL システムのエンタイトルメントを登録するのに Subscription Management ツールが必要となる最初の RHEL バージョンです。Red Hat Enteprise Linux システムを登録してサブスクライブするには、Subscription Management を使用して、別のバージョンの RHEL Subscription Management をエンタイトルすることが推奨されます。

Subscription Management について理解する

Subscription Management の主な目的は、Red Hat 製品サブスクリプションを管理することです。ソフトウェアのエンタイトルメントを提供するサブスクリプションを使用して管理します。このようなエンタイトルメントを使用して、Red Hat の利用契約に準拠したまま、新しいまたはアップデートされた Red Hat ソフトウェアを取得します。以下は、Subscription Management ツールで実行できる基本的な動作です。

  • 登録: システムを登録して、Red Hat アカウントにシステムを追加します。これにより、Subscription Management がシステムの一覧を作成できます。
  • サブスクライブ: システムをサブスクライブすると、選択した Red Hat 製品を使用できるようになります。自動サブスクライブ (アカウントで利用可能なエンタイトルメントを使用)、もしくは特別なエンタイトルメント (サポート、有効期限などを特別に設定したエンタイトルメント) を選択することが可能です。
  • リポジトリを有効にする: サブスクライブすると、複数のリポジトリ (以前、RHN Classic ではチャンネルと呼ばれていました) がデフォルトで有効になります。必要に応じて、その製品に関連付けられている (アップデートリポジトリ、ソースコードリポジトリなどの) その他のリポジトリを有効または無効にすることができます。
  • レビューおよび追跡: クライアントからコマンドを実行するか、ホスト (https://access.redhat.com/subscriptions/)またはオンプレミス (SAM) のサービスにアクセスして、利用可能なエンタイトルメントや、使用しているエンタイトルメントを確認できます。

以下は、サブスクリプション管理を理解するための概要です。

  • Subscription Management ツール: Subscription Management では、Red Hat サブスクリプションを管理するのに使用できるツールがいくつかあります。クライアントにはコマンドラインツールと GUI ツールがあり、サーバーではカスタマーポータルと SAM を利用できます。

  • Subscription-Manager コマンドラインインターフェイス: シェルから subscription-manager コマンド (とさまざまなオプション) を実行します。このコマンドは、(使用中または利用可能な) サブスクリプションのクエリー、ローカルシステムの登録、エンタイトルメントのサブスクライブ、ローカルサブスクリプションの維持など、さまざまなオプションをサポートします。

  • Subscription-Manager GUI: デスクトップから、[System]、[Administration]、[Red Hat Subscription Manager] の順に選択して、Subscription Manager GUI を表示します。ローカルシステムのサブスクリプションと、利用可能なサブスクリプションが表示されます。図 1 は、Subscription Manager GUI で、ローカルにインストールされている Red Hat 製品を表示した例です。

Subscription-Manager Window

図 1: Subscription-Manager Window からサブスクリプション情報を表示

  • カスタマーポータル: サーバーの Subscription Management では、Red Hat カスタマーポータルの Subscriptions ページで、サブスクリプションと、お使いの Red Hat ユーザーアカウントに関連付けられているサブスクリプションを使用しているシステムの情報を表示します。以下の図は、Red Hat カスタマーポータルのサブスクリプションページです。

Subscription Managements on the Red Hat customer portal

図 2: カスタマーポータルの Subscription Management でサブスクリプション情報を表示

  • Subscription Asset Manager (SAM): オンプレミスでサブスクリプションを管理したい場合は、複数システムのサブスクリプションを管理するためのオンプレミスサブスクリプション管理アプリケーション Asset Manager (SAM) を使用できます。SAM を使用すると、Red Hat カスタマーポータルに直接アクセスしなくても、使用している Red Hat アカウントで利用可能なサブスクリプションと、使用中のサブスクリプションを表示できます。

Red Hat Subscription Management の価値については、以下のページを参照してください。

Overview of Red Hat Subscription Management
The Benefits of Red Hat Subscription Management
Benefits of a Red Hat subscription

Subscription Management コマンドを使用する

以下の例では、subscription-manager と、関連するコマンドを実行して、システムを登録し、サブスクリプション情報をクエリーし、サブスクリプションを管理します。subscription-manager の詳細は、man subscription-manager コマンド、またはオプションを付けずに subscription-manager を実行すると、コマンドの構文が確認できます。


# subscription-manager
Usage: subscription-manager MODULE-NAME [MODULE-OPTIONS] [--help]
Primary Modules:
  attach         Attach a specified subscription to the registered system
  list           List subscription and product information for this system
  refresh        Pull the latest subscription data from the server
  register       Register this system to the Customer Portal or another subscription management service
...

特定のモジュール (登録モジュールなど) のヘルプを表示するには、以下のように --help オプションを使用します。


# subscription-manager register --help
Usage: subscription-manager register [OPTIONS]
Register this system to the Customer Portal or another subscription management service
Options:
  -h, --help            show this help message and exit
  --proxy=PROXY_URL     proxy URL in the form of proxy_hostname:proxy_port
  --proxyuser=PROXY_USER
                        user for HTTP proxy with basic authentication
  --proxypassword=PROXY_PASSWORD
                        password for HTTP proxy with basic authentication
  --username=USERNAME   username to use when authorizing against the server
  --password=PASSWORD   password to use when authorizing against the server
...

登録およびサブスクライブ

登録が済んでいないシステムを登録するには、以下のコマンド (yourusernameyourpassword を、お使いの Red Hat ユーザー名およびパスワードに置き換えます) を実行します。

# subscription-manager register --username=yourusername --password=yourpassword
The system has been registered with id: 231c3a37-8e14-449c-a232-3de2d5c8fa8a

登録している Red Hat アカウントで利用可能なサブスクリプションを一覧表示するには、次のコマンドを実行します。

# subscription-manager list --available | less

システムを登録したらサブスクリプションが自動的に選択され使用されるようにするには、次のコマンドを実行します。

# subscription-manager attach --auto
The system has been registered with id: 231c3a37-8e14-449c-a232-3de2d5c8fa8a

自動ではなく、利用可能なサブスクリプションの一覧を表示してから、プールを ID を入力して特定のサブスクリプションを使用する場合は、次のコマンドを実行します。

# subscription-manager attach --pool=7b64f895519e98de4138735cea132a
Successfully attached a subscription for: Red Hat Enterprise Linux for Virtual Datacenters, Premium

システムで使用されているサブスクリプションを表示するには、次のコマンドを実行します。

# subscription-manager list --consumed

リポジトリを有効にする

RHEL システムを登録しサブスクライブすると、ソフトウェアリポジトリにアクセスできるようになります。1 つ以上のエンタイトルメント(PoolID) をサブスクライブしたら、以下のファイルが作成されるか、更新されます。

/etc/yum.repos.d/redhat.repo

redhat.repo ファイルには、サブスクライブしたエンタイトルメントで利用可能なすべてのリポジトリが反映されます。以下は、redhat.repo ファイルにおけるリポジトリエントリーの例です。

name = Red Hat Enterprise Linux 6 Server (RPMs)
baseurl = https://cdn.redhat.com/content/dist/rhel/server/6/$releasever/$basearch/os
enabled = 1
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
sslcacert = /etc/rhsm/ca/redhat-uep.pem
sslclientkey = /etc/pki/entitlement/6415396139649515674-key.pem
sslclientcert = /etc/pki/entitlement/6415396139649515674.pem
...

オプションの説明は、yum.conf の man ページを参照してください。このリポジトリのソフトウェアパッケージが保存されている場所 (baseurl) も確認できます。パッケージには、enabled = 1 と設定しないとアクセスできません。有効なリポジトリを確認するには、yum repolist コマンドを実行します。


# yum repolist
...
repo id                                  repo name                                                                             status
rhel-6-server-eus-rpms                   Red Hat Enterprise Linux 6 Server - Extended Update Support (RPMs)                    11,120
rhel-6-server-rpms                       Red Hat Enterprise Linux 6 Server (RPMs)                                              11,121
rhel-6-server-supplementary-rpms         Red Hat Enterprise Linux 6 Server - Supplementary (RPMs)              

リポジトリを有効にするには、redhat.repo のそのリポジトリの設定を、enabled = 0 から enabled = 1 に変更するだけでできます。もしくは、次のように、yum-config-manager コマンドを実行します。

# yum-config-manager --enable rhel-6-server-sam-rpms

これにより、Subscription Asset Manager リポジトリが有効になります。利用可能なその他のリポジトリを確認するには、redhat.repo ファイルで角括弧 ([]) がついている名前を探します。

関連付け解除および登録解除

システムから特定のサブスクリプションの関連付けを解除するには、(使用中の) サブスクリプションのシリアル番号を確認し、次のように削除します。

# subscription-manager list --consumed
# subscription-manager remove --serial=584943852285074892

システムの登録を解除するには、次のコマンドを実行します。

# subscription-manager unregister
System has been unregistered.

サブスクリプションデータをすべて削除するには、次のコマンドを実行します。

# subscription-manager clean

エンタイトルメントについて理解する

多くの場合、Subscription Management を使用する際に、証明書の知識はあまり必要ではありません。ただし、サブスクリプションの問題のトラブルシューティングを行う場合に証明書を使用すると、システムが Subscription Management サービスと同一になり、サービスの認証、権限付与、インベントリ機能の基礎となることを覚えておくと役にたちます。

サブスクリプションの証明書は、/etc/pki/ ディレクトリと、そのサブディレクトリに保存されます。以下は、エンタイトルメントに関するサブディレクトリの役割の例です。

/etc/pki/product
システムにインストールされている実際の Red Hat 製品を説明する証明書が含まれます。このディレクトリには少なくても 69.pem ファイルがあるはずです。これにより RHEL システムと識別され、おそらく他にもインストールされている製品が認定されます。以下は、このディレクトリの証明書ファイルの例です。

  • 69.pem: この証明書は、コンピューターにインストールされた Red Hat Enterprise Linux システムのリリース番号、アーキテクチャー、および名前を識別します。69.pem ファイルは anaconda インストーラーによって作成されます。

  • 70.pem: この証明書は、RHEL Extended Update Support に関連する名前、バージョン番号、アーキテクチャを識別します。

  • 150.pem: この証明書は、Red Hat Enterprise Virtualization の名前、バージョン、アーキテクチャーと、このエンタイトルメントの発行者情報 (Red Hat) を識別します。

  • 201.pem: この証明書は、Red Hat Software Collections の名前、バージョン番号、アーキテクチャーを識別します。

ローカル RPM からインストールしない場合は、リポジトリからパッケージをインストールするとすぐに、パッケージを取得した製品を表示した .pem ファイルが /etc/pki/product ディレクトリに追加されます。

製品の最新パッケージがシステムから削除されると、yum は /etc/pki/product ディレクトリから関連する .pem ファイルを削除します。例外は 69.pem です。このファイルは yum コマンドでは削除できません。69.pem ファイルは常に RHEL システムに存在している必要があります。

/etc/pki/consumer
システムを登録 (subscription-manager register) すると、cert.pem ファイルと key.pem ファイルがこのディレクトリに追加されます。このファイルは、登録を解除 (subscription-manager unregister) すると削除されます。

/etc/pki/entitlement
ローカルシステムに関連付けられたサブスクリプションの証明書が含まれます (subscription-manager attach --pool=xxxxx など)。このディレクトリに保存されている .pem ファイルには、特定のサブスクリプションに関する最も詳細な情報が含まれます。各エンタイトルメントの .pem ファイルには、以下のような情報が含まれます。

  • 証明書: サブスクリプションのプール ID、有効な開始日と終了日、シリアル番号などの情報

  • 発行者: 証明書 (Red Hat, Inc.) を発行した組織や、組織のメールアドレスなどの情報

  • 製品: 製品セクションの一覧には、製品が複数登録されている場合もあります。それぞれの製品に、ID、名前、有効なアーキテクチャーが記載されます。

  • オーダー: このサブスクリプションに同梱される内容が記載されます。オーダーは、特定の名前、番号、SKU に関連付けられます。また、サービスレベル、サービスの種類、利用可能なサブスクリプション数、使用中のサブスクリプションの数が記載されます。

subscription-manager unattach --all コマンドを実行すると、/etc/pki/entitlements ディレクトリの中身をすべて削除します。

サブスクリプション証明書を調べる

サブスクリプション証明書は、X.509 フォーマットで保存されます。証明書に発生した問題をデバッグする場合は、openssl コマンドを実行して内容を表示します。使用に適したオプションを見つけるのは簡単ではありません。証明書に関する情報を表示するために作成された rct ツールを使用することが推奨されます。

rct コマンドを実行すると、証明書の内容 (rct cat-cert *.pem) や、証明書の詳細 (rct stat-cert *.pem) を表示できます。たとえば、次のコマンドを実行すると、特定の証明書に関するリポジトリ、製品、オーダー情報を表示できます。

# rct cat-cert /etc/pki/entitlement/4163951369645195746.pem

たとえば、rct cat-cert には、以下のような情報が含まれます。

  • その証明書でエンタイトルメントされている製品 (Red Hat Enterprise Linux、Red Hat Enterprise Virtualization、Jboss Enterprise Application Platform など)
  • 証明書の有効期限
  • SKU、契約番号、アカウント番号、サービスレベル、エンタイトルメントの数、その他のオーダーの属性
  • このエンタイトルメントで利用可能な yum リポジトリ

以下は、証明書の統計例です。

# rct stat-cert /etc/pki/entitlement/4163951369645195746.pem

たとえば、rct stat-cert には、以下のような情報が含まれます。

  • 証明書に含まれるコンテンツセット (yum リポジトリまたは ISO ファイル) の数。コンテンツセットが多い (全部で 185 セット以上) と、パフォーマンスに問題が発生します。
  • DER サイズ (証明書全体のサイズではなく、証明書のコンテンツのサイズ)。このサイズが大きくても、パフォーマンスには問題が発生します。

rct コマンドの詳細は、Viewing Certificate Information with the rct ToolUsing the rct tool to troubleshoot Red Hat Subscription Management issues と、rct の man ページ (man rct コマンド) を参照してください。

サブスクリプションの設定

サブスクリプション管理の設定に誤りがあると、問題が発生する場合があります。サブスクリプション管理設定は、以下のファイルで定義されます。

/etc/rhsm/rhsm.conf

このコマンドを実行すると、現在の設定を確認できます。

# subscription-manager config --list
[server]
   hostname = [subscription.rhn.redhat.com]
   insecure = [0]
   port = [443]
   prefix = [/subscription]
   proxy_hostname = []
   proxy_password = []
   proxy_port = []
   proxy_user = []
   ssl_verify_depth = [3]

[rhsm]
   baseurl = [https://cdn.redhat.com]
   ca_cert_dir = [/etc/rhsm/ca/]
   consumercertdir = [/etc/pki/consumer]
   entitlementcertdir = [/etc/pki/entitlement]
   manage_repos = [1]
   pluginconfdir = [/etc/rhsm/pluginconf.d]
   plugindir = [/usr/share/rhsm-plugins]
   productcertdir = [/etc/pki/product]
   repo_ca_cert = [/etc/rhsm/ca/redhat-uep.pem]
   report_package_profile = [1]

[rhsmcertd]
   autoattachinterval = [1440]
   certcheckinterval = [240]

上述の角括弧 ([]) は、デフォルト値が使用されていることを示しています。サブスクリプション管理の設定に誤りがあると思われる場合は、/etc/rhsm/rhsm.conf ファイルで、誤って設定した値を変更します。たとえば、誤ってホスト名を変更した場合は、satellite サーバーに正しい値を入力するか、subscription.rhn.redhat.com に戻します。