RHEL 上級 #6 Subscription、Satellite、Insights — 運用インフラ

#5 セキュリティ強化 までが 1 マシン単位の運用だったとすれば、この記事は 複数マシンを一度に運用する局面 で出会うツール群です。RHEL 1 台をそのまま入れて使っても動きますが、数十・数百台規模になるとパッチ管理、コンテンツの一貫性、脆弱性監視がツールなしでは不可能になります。その役割を埋める Red Hat の 3 ツール — subscription-manager (サブスクリプション登録)、Satellite (オンプレミス統合プラットフォーム)、Insights (SaaS 分析) を 1 サイクルで扱います。

RHEL 上級 シリーズでこの記事の位置:

3 ツールの関係 #

規模とツールの対応
1 台 ~ 10 台      : subscription-manager + Insights (十分)
10 台 ~ 50 台     : 同上 + Ansible / 自動化スクリプト
50 台 ~ 数百台 +  : Satellite (オンプレ単一エントリポイント)
+ 隔離環境       : Satellite + Capsule (支店/DMZ)
ツールどこで動くか何をするか
subscription-manager各 RHEL マシンRed Hat サブスクリプションに登録、リポジトリ有効化
Satelliteオンプレ単一サーバ (またはクラスタ)コンテンツミラー、ライフサイクル管理、ホスト統合運用
InsightsRed Hat SaaS (cloud.redhat.com)登録マシンを分析して脆弱性・安定性・パフォーマンス推奨

subscription-manager はすべての RHEL マシンが持つ基本ツール。Satellite はその上に乗るオンプレミス統合プラットフォーム、Insights は別個の SaaS 分析サービスです。

subscription-manager #

RHEL 9 をインストールして最初に出会うコマンド。dnf が Red Hat リポジトリを見るには、マシンが Red Hat サブスクリプションに登録されている必要があります。

登録
$ sudo subscription-manager register --username <user> --password <pass>
The system has been registered with ID: 12345678-1234-...

登録状態とサブスクリプション #

確認
# 登録状態
$ sudo subscription-manager status
+-------------------------------------------+
   System Status Details
+-------------------------------------------+
Overall Status: Current

# 有効なサブスクリプション
$ sudo subscription-manager list --consumed

# 登録解除
$ sudo subscription-manager unregister

リポジトリ有効化 #

デフォルトの BaseOS / AppStream 以外に追加リポジトリ (CodeReady Builder、Supplementary など) を有効化する場面:

repo 管理
# 利用可能な repo 一覧
$ sudo subscription-manager repos --list

# 有効化
$ sudo subscription-manager repos \
    --enable=codeready-builder-for-rhel-9-x86_64-rpms

# 無効化
$ sudo subscription-manager repos \
    --disable=rhel-9-for-x86_64-supplementary-rpms

有効化すると /etc/yum.repos.d/redhat.repo が自動更新され、dnf がその repo のパッケージを見るようになります。

サブスクリプション種類 #

運用環境でよく出会うサブスクリプション種別:

種類位置づけ
Standard一般本番 RHEL (8x5 または 24x7 サポート)
Premium本番 + 24x7 サポート
Developer Subscription for Individuals個人開発者無料 (最大 16 台登録可)
Developer Subscription for Teamsチーム開発者無料
BYOS (Bring Your Own Subscription)AWS/Azure/GCP の RHEL インスタンスに自己サブスクリプションを使用
PAYG (Pay As You Go)クラウドマーケットプレースで時間課金

個人学習/開発なら Red Hat Developer 無料登録 で RHEL 9 を合法的にインストールできます。

Simple Content Access (SCA) #

伝統的に RHEL サブスクリプションはマシン 1 台あたり 1 entitlement が必要でした (entitlement = サブスクリプション枠)。マシン数が増えると自前で entitlement を管理する作業が発生しました。Simple Content Access はそのモデルを単純化 — 組織単位で 1 度有効化すればマシンごとに entitlement を追跡しなくてよく、登録するだけでコンテンツアクセスが開きます。

SCA 有効時の登録フロー
$ sudo subscription-manager register --username <u> --password <p>
# attach コマンド不要

RHEL 9 以降は SCA が事実上の標準です。大規模組織では Red Hat Hybrid Cloud Console で有効化されているか確認します。

Activation Key #

自動化環境でユーザ名/パスワードを置かずに登録する方法。

activation key 使用
$ sudo subscription-manager register \
    --org=<org-name> \
    --activationkey=<key-name>

キーは Red Hat Hybrid Cloud Console → Activation Keys で生成。Kickstart や cloud-init の user-data に埋め込むと、ブート時に自動登録されます。

Red Hat Satellite — オンプレミス統合プラットフォーム #

数十 ~ 数百台以上を運用する時点で登場します。中核の役割:

  1. コンテンツミラー — Red Hat リポジトリを社内にミラーリング。インターネット隔離環境でも RHEL 運用可能
  2. ライフサイクル管理 — Dev → QA → Prod の環境別にコンテンツバージョンを分離
  3. ホスト統合運用 — すべての RHEL マシンを 1 コンソールで管理 (パッチ、プロビジョニング、構成)
  4. Capsule — 支店/DMZ でのプロキシ役割

中核概念 #

構造
                      ┌─────────────────────────┐
                      │   Red Hat CDN           │
                      │   (cdn.redhat.com)      │
                      └────────────┬────────────┘
                                   │ sync
                      ┌────────────▼────────────┐
                      │   Satellite Server      │
                      │   (HQ)                  │
                      │  - Content Sync         │
                      │  - Lifecycle Env        │
                      │  - Content Views        │
                      │  - Host Inventory       │
                      └────┬────────────────┬───┘
                           │                │
                  ┌────────▼─────┐  ┌───────▼──────┐
                  │ Capsule (A)  │  │ Capsule (B)  │
                  │ (支店 1)     │  │ (DMZ)        │
                  └──────┬───────┘  └──────┬───────┘
                         │                 │
                    [content host]    [content host]
                    [content host]    [content host]

ライフサイクル環境 #

コンテンツの流れ
Library (全同期コンテンツ) → Dev → QA → Prod

各環境に Content View (使うリポジトリとパッケージの束) を発行 (publish) し、次の環境へ promote します。Dev で数日検証したパッチ束を QA へ、QA でさらに検証して Prod へ — この流れが標準。

Content View #

複数のリポジトリを束ねてフィルタした単位。同じ名前でも環境別に違うバージョンを持てます。

Content View: rhel9-base
  - rhel-9-for-x86_64-baseos-rpms
  - rhel-9-for-x86_64-appstream-rpms
  - rhel-9-for-x86_64-supplementary-rpms

Lifecycle:
  Dev:  Version 5  (今日発行)
  QA:   Version 4  (1 週間前発行)
  Prod: Version 3  (1 か月前発行)

問題が見つかったら promote を止めるか、前のバージョンにロールバックします。

ホスト登録と運用 #

コンテンツホストが Satellite に登録されると、次の作業を 1 コンソールで管理できます。

領域何を
Errataセキュリティ/バグ/機能パッチ — 環境別に適用可能な errata を自動識別
Patchdnf update をホスト別/グループ別に一括実行
Provisioningベアメタル/VM ブート → Kickstart → 自動インストール
ConfigurationAnsible/Puppet 統合で構成管理
Subscriptionsサブスクリプション統合管理 (SCA で簡素化)
Reportsホスト別パッチ状況、コンプライアンス

Capsule #

Satellite Server の子ノード。支店や DMZ のように メインサーバに直接アクセスしない位置 でコンテンツキャッシュとホスト管理を代わりに行います。コンテンツはメインから Capsule に同期され、その地域のコンテンツホストは Capsule のみ参照します — ネットワーク効率とセキュリティ隔離を同時に。

インストール — スケール #

基準推奨
ホスト数~ 5,000 台 / Satellite 1 台。それ以上は Capsule 分散
スペックCPU 8+、RAM 32GB+、ディスク 200GB+ (コンテンツ同期用に大きなディスク)
OSRHEL 9
ライセンス別途サブスクリプション必要

インストールは satellite-installer で 1 度に。詳細手順は別記事の分量です — ここでは位置づけまで。

Red Hat Insights — SaaS 分析 #

別途インストールインフラなしに、登録された RHEL マシンのデータを Red Hat クラウドに送り、分析結果を受け取るサービスです。RHEL サブスクリプションにデフォルトで含まれます。

有効化 #

insights-client インストールと登録
$ sudo dnf install -y insights-client
$ sudo insights-client --register

# 状態
$ sudo insights-client --status
$ sudo insights-client --display-name "web-prod-01"

登録すると毎日自動でマシンのシステム情報・構成・ログの一部を分析サーバに送ります (どのデータが送られるかは insights-client --offline --output-file= で事前確認可能)。

何を受け取るか #

console.redhat.com/insights で次のカテゴリの推奨を受け取ります。

カテゴリ何を
Vulnerability既知の CVE と影響を受けるマシン、errata マッピング
Advisor安定性・パフォーマンス・セキュリティのベストプラクティス違反
ComplianceOpenSCAP 点検結果統合 (CIS、PCI-DSS など)
Patch適用可能な errata と影響パッケージ
Driftマシン間の構成差異追跡
Policiesユーザ定義ポリシー違反通知
Subscriptionsサブスクリプション利用状況
Inventory登録された全マシンの統合インベントリ

各推奨には why this matters (なぜ重要か)、how to fix (具体的措置、Ansible playbook ダウンロード可)、affected systems (影響を受けるマシン一覧) が付いてきます。推奨ページから一度に Ansible playbook として束ねてダウンロードして適用できます — Remediation Plans 機能。

Insights と Satellite の関係 #

Satellite があれば Insights のデータを Satellite と統合して 1 画面で見られます。Satellite がインフラを運用し、Insights がインフラを分析する が 1 行のまとめ。

データプライバシー #

アップロードされるデータに機微情報が含まれる可能性があるので、/etc/insights-client/file-content-redaction.yaml/etc/insights-client/file-redaction.yaml で redaction ルールを定義できます。政府/金融環境では登録前に必ず確認します。

/etc/insights-client/file-content-redaction.yaml 例
patterns:
    regex:
        - "password\\s*=\\s*\\S+"
        - "api[_-]?key\\s*[:=]\\s*\\S+"
keywords:
    - secret
    - credential

3 つを束ねた運用フロー #

時点ツール
マシン 1 台立てるsubscription-manager register + insights-client --register
10 台以上自動化activation key で Kickstart/cloud-init 自動登録
50 台以上統合Satellite 導入、Content View + ライフサイクル環境設計
隔離環境Capsule 追加 (支店/DMZ)
定期運用Insights 推奨 → Remediation Plan → Ansible 適用
定期パッチSatellite の errata → Dev 環境 promote → QA → Prod

よくある落とし穴 #

  • Developer Subscription を本番に使用 — ライセンス違反。本番は必ず Standard/Premium または BYOS/PAYG。
  • subscription-manager attach --auto を SCA 環境で — SCA 環境では attach は無意味で、警告が出ることもあります。SCA がオンなら register のみ。
  • Satellite を単一マシンで大量のホストを扱う場合 — 5,000 台を超える前に Capsule 分散計画。
  • Content View を Library そのまま Prod に直結 — ライフサイクル環境の意味が消えます。Library でコンテンツ同期、Content View 発行後に Dev → QA → Prod に promote。
  • Insights に redaction なしで本番データ/etc/insights-client/*-redaction.yaml 未設定でパスワード/API キーがアップロードされる可能性。登録前確認必須。
  • Insights 推奨を無条件に適用 — 推奨が自分の環境に合わない可能性 (例: 意図的に無効化したサービス)。適用前確認は OpenSCAP --remediate と同じ原則。
  • Capsule ディスク不足 — コンテンツ同期量が重い。RHEL 9 BaseOS + AppStream だけでも 100GB+。ディスク監視必須。

覚えておくコマンド #

作業コマンド
マシン登録sudo subscription-manager register --username <u>
activation key 登録sudo subscription-manager register --org <o> --activationkey <k>
登録状態sudo subscription-manager status
repo 一覧/変更sudo subscription-manager repos --list / --enable=<id>
登録解除sudo subscription-manager unregister && sudo subscription-manager clean
Insights 登録sudo dnf install -y insights-client && sudo insights-client --register
Insights データ事前確認sudo insights-client --offline --output-file=/tmp/insights.tar.gz
Satellite ホスト登録curl <satellite>/register | sudo bash (公式 1 行登録スクリプト)

まとめ #

  • subscription-manager — すべての RHEL マシンの基本ツール。SCA 時代は register のみ。自動化は activation key。
  • Satellite — 50 ~ 100 台以上運用時点でのオンプレ統合プラットフォーム。Library → Content View → Dev/QA/Prod ライフサイクルでコンテンツの流れを統制。Capsule で支店/DMZ 分散。
  • Insights — 別途インフラなしに登録するだけで受け取る SaaS 分析。脆弱性・安定性・パフォーマンス・コンプライアンス推奨 + Ansible Remediation Plan。redaction 設定は必ず確認。
  • 3 つの位置 — 1 台運用 (subscription-manager + Insights)、多数運用 (追加で Satellite)。3 つすべて別ツールでも同じコンソール (console.redhat.com) で統合。

次回はシリーズの最終回。これまではすべて CLI 中心でしたが — 軽い GUI が必要な場面もあります。ブラウザで RHEL を管理する Cockpit でシリーズを締めくくります。

X