1.2. RHUI 4 コンポーネント
RHUI の各コンポーネントが他のコンポーネントとどのように相互作用するかを理解することで、システム管理者としての仕事が少し楽になります。
1.2.1. Red Hat Update Appliance
RHUI インストールごとに RHUA がありますが、多くのクラウド環境では、リージョンまたはデータセンターごとに RHUI インストールがあります。たとえば、Amazon の EC2 クラウドは複数のリージョンで構成されています。すべてのリージョンでは、独自の RHUA ノードを持つ個別の RHUI が設定されています。
RHUA では、以下の作業を行うことができます。
- Red Hat コンテンツ配信ネットワーク (CDN) から新規パッケージをダウンロードします。
- 共有ネットワークストレージに新しいパッケージをコピーします。
- RHUI インストールの健全性を検証し、結果を RHUA にあるファイルに書き込みます。監視ソリューションは、このファイルを使用して RHUI インストールの健全性を判断します。
- CLI ツールを使用して RHUI インストールの健全性について人間が判読できるビューを提供します。
RHUI は主に /etc/rhui/rhui-tools.conf
と /etc/rhui/rhui-subscription-sync.conf
の設定ファイルを使用します。
/etc/rhui/rhui-tools.conf
設定ファイルには、RHUA で使用される一般的なオプション (証明書のデフォルトのファイルの場所、Red Hat CDN 同期のデフォルト設定パラメーターなど) が含まれます。通常、このファイルを編集する必要はありません。
/etc/rhui/rhui-subscription-sync.conf
設定ファイルには、Pulp データベースの認証情報が含まれています。この認証情報は、rhui-manager
インターフェイスにログインするときに使用する必要があります。
RHUA は複数のサービスを使用して、配信を簡単にするためにコンテンツを同期し、整理し、配布します。
RHUA サービス
- Pulp
- リポジトリーを管理するサービス。
- PostgreSQL
- 現在同期されているリポジトリー、パッケージ、およびその他の重要なメタデータを追跡するために Pulp が使用するデータベース。
1.2.2. コンテンツ配信サーバー
CDS ノードは、クライアントが更新したコンテンツ用に接続するリポジトリーを提供します。CDS は 1 つしかありません。RHUI はフェイルオーバー機能を備えたロードバランサーを提供するため、複数の CDS ノードを使用することが推奨されます。
エンドユーザーの RHEL システムへの CDS ノードホストコンテンツシステムの数は必要ありませんが、CDS はラウンドロビン形式の負荷分散方式 (A、B、C、A、B、C) で動作し、エンドユーザーシステムにコンテンツを提供します。CDS は HTTP を使用して、yum
リポジトリー経由でエンドユーザーシステムにコンテンツを提供します。
設定時に、パッケージが同期される CDS ディレクトリーを指定します。RHUA と同様に、唯一の要件は、CDS にディレクトリーをマウントすることです。必要なデバイスを割り当てる際の最善のアクションは、クラウドプロバイダーによって決定されます。Red Hat Update Infrastructure Management Tool 設定 RPM は、パッケージディレクトリーを NGINX 設定にリンクして提供します。
現在、RHUI は以下の共有ストレージソリューションをサポートします。
- NFS
NFS が使用される場合、
rhui-installer
は RHUA で NFS 共有を設定し、コンテンツと NFS 共有をマウントする CDS ノードのディレクトリーを保存できます。以下のrhui-installer
オプションは、このような設定を制御します。-
--remote-fs-mountpoint
は、リモートファイルシステム共有をマウントする必要があるファイルシステムの場所です (デフォルト:/var/lib/rhui/remote_share
) -
--remote-fs-server
は、使用する共有ファイルシステムのリモートマウントポイントです。たとえば、nfs.example.com:/path/to/share
です (デフォルト値なし)。
-
- CephFS
CephFS を使用する場合は、CephFS を個別に設定し、RHUI をマウントポイントとして使用する必要があります。以下の
rhui-installer
オプションは、このような設定を制御します。-
--remote-fs-server
は、使用する共有ファイルシステムのリモートマウントポイントです。たとえば、ceph.example.com:/path/to/share
です (デフォルト値なし)。
-
このドキュメントには、Ceph 共有ストレージを設定して設定する手順は含まれません。Ceph 関連のタスクについては、システム管理者に問い合わせるか、Ceph ドキュメントを参照してください。
想定される使い方は、RHUA とすべての CDS ノードで、NFS などの 1 つの共有ネットワークファイルシステムを使用することです。クラウドプロバイダーは、RHUA がパッケージを書き込んで各 CDS が読み取る共有ストレージの形式を使用できます。
ストレージソリューションでは、RHUA ノードおよび CDS ノードにマウントするための NFS または CephFS エンドポイントを提供する必要があります。RHUI ノードには共有ファイルシステムのストレージを設定しないでください。独立したストレージサーバーを使用する必要があります。
各 CDS で行われる唯一の標準以外のロジックは、エンタイトルメント証明書チェックです。このチェックにより、クライアントが yum
リポジトリーに対して要求を行うのが、クラウドプロバイダーがこれらのリポジトリーにアクセスする権限を付与するようになります。このチェックでは、以下の条件を確認します。
- エンタイトルメント証明書がクラウドプロバイダーの認証局 (CA) 証明書により署名されている。また、この検証を容易にするため、CA 証明書はその設定の一部として CDS にインストールされている。
- 要求された URI が、クライアントのエンタイトルメント証明書にあるエンタイトルメントと一致する。
CA の検証に失敗すると、クライアントには SSL エラーが表示されます。詳細は、/var/log/nginx/
の CDS ノードの NGINX ログを参照してください。
[root@cds01 ~]# ls -1 /var/log/nginx/ access.log error.log gunicorn-auth.log gunicorn-content_manager.log gunicorn-mirror.log ssl-access.log----
NGINX 設定は、CDS インストール中に作成される /etc/nginx/conf.d/ssl.conf
ファイルによって処理されます。
1.2.3. HAProxy ロードバランサー
クライアントの HTTPS 要求をすべての CDS サーバーに分散するには、負荷分散ソリューションを導入する必要があります。RHUI はデフォルトで HAProxy を使用しますが、インストール時に、使用する負荷分散ソリューション (たとえば、クラウドプロバイダーのもの) を自由に選択できます。HAProxy が使用されている場合は、挿入するノードの数を決定する必要もあります。
クライアントは CDS に直接移動するように設定されていません。リポジトリーファイルは、RHUI ロードバランサーである HAProxy を参照するように設定されます。HAProxy は特に高可用性環境に適した TCP/HTTP リバースプロキシーです。
既存のロードバランサーを使用する場合は、ロードバランサーでポート 443 が設定されており、クラスター内のすべての CDS がロードバランサーのプール内にあることを確認してください。
正確な設定は、使用する特定のロードバランサーソフトウェアによって異なります。ロードバランサーの設定方法を理解するには、一般的な HAProxy 設定から取られる以下の設定を参照してください。
[root@rhui4proxy ~]# cat /etc/haproxy/haproxy.cfg global chroot /var/lib/haproxy daemon group haproxy log 10.10.153.149 local0 maxconn 4000 pidfile /run/haproxy.pid stats socket /var/lib/haproxy/stats user haproxy defaults log global maxconn 8000 option redispatch retries 3 stats enable timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout check 10s listen https00 bind 10.10.153.149:443 balance roundrobin option tcplog option tcp-check server cds01.example.com cds01.example.com:443 check server cds02.example.com cds02.example.com:443 check
クライアントが接続に失敗した場合、/var/log/nginx/
の下にある CDS 上の nginx
ログを確認し、CDS への要求の到達を確認することが重要です。リクエストが CDS に届かない場合は、DNS や一般的なネットワーク接続に問題がある可能性があります。
1.2.4. リポジトリーおよびコンテンツ
リポジトリーは、ソフトウェアパッケージ (RPM) のストレージの場所です。RHEL は、yum
コマンドを使用して、リポジトリーを検索し、RPM のダウンロード、インストール、および更新を行います。RPM には、アプリケーションの実行に必要なすべての依存関係が含まれます。
RHUI に関連するコンテンツは、RHUA ノードおよび CDS ノードで使用する Red Hat CDN からダウンロードしたソフトウェア (RPM など) です。RPM は、特定のアプリケーションおよびツールの実行に必要なファイルを提供します。クライアントには、rpm パッケージが提供する SSL コンテンツ証明書と鍵のセットによるアクセスが付与されます。これは、生成された yum
リポジトリーファイルのセットも提供します。