パブリッククラウド上の従量課金制RHELをRed Hat Satelliteで管理してみよう

Red Hat Advent Calendar 2023の12/6の記事です。

Red Hatの小島です。
AWS/Azure/GCPなどのパブリッククラウド上で提供している従量課金制のRHELには、Red Hat Satelliteで管理するためのサブスクリプションが含まれているため、無料でRed Hat Satelliteを利用できるようになっています。本記事では、Red Hat Satelliteでこれら従量課金制のRHELを管理するためのポイントをご紹介します。

前置き

AWS/Azure/GCPなどのパブリッククラウド上で提供される従量課金制のRHELを利用する場合、RHELを提供している各クラウドベンダーが運用しているRed Hat Update Infrastructure (RHUI)という、クラウド環境専用のRHELリポジトリを参照してRHELのパッケージのダウンロード/インストール/アップデートができるように予め設定されています。そのため、利用者は、クラウドベンダーが運用するRHUI経由でRHELパッケージを参照することが基本となります。

ただし、RHUIを利用してRHELのパッケージ管理をする場合、以下のような要件に対応するための標準機能はありません。

  • 予めテスト済みのパッケージを利用させるための、特定の日時におけるパッケージリポジトリのスナップショット作成
  • グループ化されたRHELサーバーを対象とした、一括アップデート

これらの要件に対応させるためには、RHELなどのパッケージリポジトリ管理やリモート実行機能を持つRed Hat Satelliteを使ったRHELの管理が効果的となります。Red Hat Satelliteを使ったRHELのアップデートの概要については、下記の記事をご参照ください。

rheb.hatenablog.com

Red Hat Satelliteのサブスクリプション

従量課金制のRHELを利用する環境でRed Hat Satelliteを利用したい場合、Red Hat SatelliteのサブスクリプションをRed Hatにリクエストします。このとき、Red Hatのアカウントを持っていなければ、Red HatのカスタマーポータルからRed Hatアカウントを無料で作成していただき、作成いただいたRed HatアカウントにRed Hat Satelliteのサブスクリプションを紐づけることになります。

Red Hat Satellitenのサブスクリプションのリクエスト先は、Red Hatカスタマーサービスとなります。Red Hat カスタマーサービスでは、Red Hatのアカウントや請求、登録、サブスクリプション関連のお問い合わせに対応しています。

これによって、「Red Hat Satellite Infrastructure Subscription」というRed Hat Satellite専用のサブスクリプションが割り当てられます。このサブスクリプションには、Red Hat Satelliteだけでなく、Red Hat Satelliteを実行するための専用のRHELサブスクリプションも含みます。このサブスクリプションを入手することで、Red Hat SatelliteをRHELにインストールして使うことができるようになるほかに、Red Hatがカスタマーポータル上で提供しているナレッジベースも見ることができるようになります。また、このサブスクリプションを利用して、Red Hat SatelliteがRed HatのCDNからRHELパッケージをダウンロードできるようにするためのマニフェストを作成します。

Red Hat Satellite利用時のポイント

Red Hat Satelliteをクラウド環境で利用する場合、DHCPサービスを利用したPXEによるプロビジョニングは利用不可などの制限事項があります。こうした情報については、AWSやAzure上でのRed Hat Satelliteデプロイガイドをご参照ください。

access.redhat.com

access.redhat.com

Red Hat Satelliteで従量課金制のRHELを管理する場合、Simple Content Access (SCA)を有効にする必要があります。SCAはサブスクリプションの利用を簡単にするために、サブスクリプションの必要本数を管理・強制する機能が失われるオプションです。SCAによって、従量課金制のRHELサーバーに(Red Hatが発行する)RHELのサブスクリプションを都度割り当てることなく、Red Hat Satelliteで管理できるようになります。SCAは、Red Hatアカウントを新しく作るときはデフォルトで有効になっています。

昔からRed Hatアカウントを持っていて、SCAが有効になっていない場合は、Red Hat Subscription Managementから有効にできます。また、Red Hat SattelliteにRed Hatサブスクリプションをインポートして、RHELなどのパッケージをRed HatのCDNからダウンロードするために利用するマニフェストでも、SCAはデフォルトで有効になっています。そのため、今から従量課金制のRHELを作って、Red Hat Satelliteで管理しようとする場合、SCAの設定について特に変更する必要はありません。

SCAについては、下記のブログもご参照ください。 rheb.hatenablog.com

Red Hat Satelliteが提供するRHELリポジトリだけを利用させる場合、従量課金制のRHELがRHUIを利用するための設定を削除しておきます。この設定は、各クラウドベンダーが提供するパッケージによってインストールされている場合、yum removeコマンドで削除できます。RHUIを利用する設定に戻すときのことも考えて、これらのパッケージを予めyum downloadコマンドでダウンロードしておいてもいいでしょう。AWS/Azure/GCPの場合の例を記載しておきます。

AWS

$ sudo yum download rh-amazon-rhui-client
$ sudo yum remove rh-amazon-rhui-client

Azure (XにはRHELのメジャーリリースの番号(7, 8, 9など)が入ります)

$ sudo yum download rhui-azure-rhelX
$ sudo yum remove rhui-azure-rhelX

GCP (XにはRHELのメジャーリリースの番号(7, 8, 9など)が入ります)

$ sudo yum download google-rhui-client-rhelX
$ sudo yum remove google-rhui-client-rhelX

また、これらのRHELをRed Hat Satelliteに登録して利用する際に、RHELのSubscription Managerによってリポジトリ設定が無効化されているため、Red Hat Satelliteのリポジトリ利用が有効にならない場合があります。このときは、subscription-managerコマンドを利用して、リポジトリ設定を有効化します。

$ sudo subscription-manager config --rhsm.manage_repos=1

なお、Red Hat SatelliteがRed Hat CDNからダウンロードするRHELパッケージと、RHUI経由でダウンロードできるRHELパッケージは同じものです。Red HatはパッケージブラウザのWebページで各RHELパッケージのSHA-256を公開しているため、それらの値とsha256sumコマンドの実行結果を照らし合わせることで確認できるようになっています。

$ sha256sum XXX.rpm

そのため、クラウドベンダーがRHUI経由でダウンロードできるようにしているRHELパッケージについては、Red Hat Satellite経由でダウンロードして利用したとしても、クラウドベンダーのサポートを受けることができます。Red Hat Satelliteを利用する環境でのユースケースについて、問い合わせ先は下記のようになります。

  • 問い合わせ先がクラウドベンダー:
    クラウドベンダーが提供するRHELと、RHUI経由で提供しているパッケージのインストール/利用/設定
  • 問い合わせ先がRed Hat:
    Red Hat Satelliteのインストール/利用/設定やRed Hat SatelliteへのRHEL登録
Extended Update Support (EUS)の利用

2023年12月時点では、AWSとAzureの従量課金制RHELには、RHEL8.8やRHEL9.2など特定のマイナーリリースにおいてEUSという延長サポートが無料で利用できるようになっています。GCPの従量課金制RHELにはEUSは付いていません。EUSを利用することで、マイナーリリース間のアップグレード頻度を下げて、アプリケーションのテスト期間を十分に取ることができるようになります。

AWSやAzureのRHEL EUSの利用方法については、下記をご参照ください。なお、AWSについては、2023年12月時点でRHEL8.6, 8.8, 9.0, 9.2のEUSが利用できるようになっています。RHEL7のEUSについてはすでに終了していますので、ご注意ください。

access.redhat.com

learn.microsoft.com

一方で、従量課金制のRHELユーザーが利用できるRed Hat Satelliteのマニフェストには、RHELのEUSは含まれていません。そのため、Red Hat SatelliteがRed Hat CDNからダウンロードできないようになっています。EUSのパッケージをRed Hat Satellite上のリポジトリとして利用できるようにするには、手元にダウンロードしたEUSのパッケージをRed Hat Satelliteにインポートするといった工夫が必要になってきます。

上記のガイドに従って利用できるようにしたRHEL EUSのリポジトリについては、reposyncコマンドで丸ごとダウンロードできます。--download-metadataオプションを指定することで、エラータなどのメタデータもダウンロードします。下記は、RHEL9 EUSリポジトリを有効化したAWS上のRHEL9サーバーで、RHEL9 EUSのBaseOS, AppStreamリポジトリのパッケージをダウンロードするreposyncコマンドの実行例です。

$ sudo reposync -p <ダウンロード先となるディレクトリのPATH> --download-metadata \
    --repoid=rhel-9-baseos-eus-rhui-rpms --repoid=rhel-9-appstream-eus-rhui-rpms

reposyncについては、下記のナレッジもご参照ください。

access.redhat.com

これによって、「rhel-9-baseos-eus-rhui-rpms」と「rhel-9-appstream-eus-rhui-rpms」ディレクトリが作成され、その中に、EUSリポジトリに含まれるパッケージとメタデータが保存されます。これらのディレクトリをRed Hat Satelliteにインポートして、EUSのリポジトリとして作成します。この場合、Red Hat SatelliteではカスタムRPMリポジトリとして扱われます。インポートには、パッケージの手動アップロードのほかに、外部リポジトリのURLとしてhttp(s)://とfile://を指定する方法があります。file://を指定する場合は、Red Hat Satelliteサーバーの/var/lib/pulp/sync_imports/ディレクトリーの下に「rhel-9-baseos-eus-rhui-rpms」と「rhel-9-appstream-eus-rhui-rpms」ディレクトリをコピーしておく必要があります。

これらの具体的な手順については、下記をご参照ください。

access.redhat.com

このようにリポジトリを作成してRed Hat Satellite上で公開し、RHELをRed Hat Satelliteに登録すると、Red Hat Satellite上で登録したRHELの情報(インストール済みのパッケージや、インストール可能な更新パッケージなど)が確認できるようになり、グループ化されたRHELサーバーへの一括アップデートのリモート実行もできるようになります。これらの具体的な手順については、「参考情報」に記載しているRed Hat Satelliteのドキュメントをご参照ください。

参考情報

access.redhat.com

access.redhat.com

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。