4.13. Satellite での外部データベースの使用
Red Hat Satellite のインストールプロセスの一部として、satellite-installer コマンドは PostgreSQL のデータベースを Satellite と同じサーバー上にインストールします。Satellite のデプロイメントによっては、デフォルトのローカルにあるデータベースの代わりに外部データベースを使用すると、サーバーの負荷が軽減される場合があります。
Red Hat では、外部データベースのメンテナンスのサポートやそのためのツールは提供していません。これにはバックアップ、アップグレード、データベースのチューニングが含まれます。外部データベースをサポートし、管理する自社のデータベース管理者が必要です。
Satellite 用に外部データベースを作成して使用するには、以下の手順を実行します。
- 「外部データベース用のホストの準備」:外部データベースをホストするように Red Hat Enterprise Linux 7 サーバーを準備します。
- 「PostgreSQL のインストール」:Satellite、Candlepin、Pulp のデータベースを使用して PostgreSQL を準備し、それらを所有する専用ユーザーを配置します。
-
「外部データベースを使用するための Satellite の設定」:新規データベースを参照するように
satellite-installerのパラメーターを編集し、satellite-installerを実行します。
4.13.1. 外部データベースとして PostgreSQL を使用する際の注意点 リンクのコピーリンクがクリップボードにコピーされました!
Foreman、Katello、および Candlepin は PostgreSQL データベースを使用します。PostgreSQL を外部データベースとして使用する場合は、以下の情報を参照してお使いの Satellite 設定にこのオプションが適しているかどうかを判別してください。Satellite は PostgreSQL バージョン 12.1 をサポートします。
外部 PostgreSQL の利点
- Satellite 上の空きメモリーと空き CPU が増えます。
-
PostgreSQL データベースで
shared_buffersを高い値に設定しても、Satellite 上の他のサービスの妨げるリスクがありません。 - Satellite 操作にマイナスの影響をもたらすことなく PostgreSQL サーバーのシステムを調整する柔軟性が得られます。
外部 PostgreSQL のマイナス点
- デプロイメントの複雑性が増し、問題解決がより困難になります。
- 外部 PostgreSQL サーバーの場合は、パッチおよびメンテナンス対象に新たなシステムが加わることになります。
- Satellite または PostgreSQL データベースサーバーのいずれかにハードウェアまたはストレージ障害が発生すると、Satellite が機能しなくなります。
- Satellite Server とデータベースサーバーの間でレイテンシーが発生すると、パフォーマンスに影響が出ます。
お使いの Satellite 上の PostgreSQL データベースが原因でパフォーマンスの低下が生じている可能性がある場合は、Satellite 6: How to enable postgres query logging to detect slow running queries を参照して時間のかかっているクエリーがあるかどうか判定します。1 秒以上かかるクエリーがある場合は、通常、大規模インストールのパフォーマンスが原因であることが多く、外部データベースに移行しても問題解決が期待できません。時間のかかっているクエリーがある場合は、Red Hat サポートチームまでお問い合わせください。
4.13.2. 外部データベース用のホストの準備 リンクのコピーリンクがクリップボードにコピーされました!
新しくプロビジョニングされたシステムに最新の Red Hat Enterprise Linux 7 サーバーをインストールして、外部データベースをホストします。
Red Hat Software Collections および Red Hat Enterprise Linux のサブスクリプションでは、外部データベースと Satellite を併用する場合に、正しいサービスレベルアグリーメントが提供されません。外部データベースに使用するベースオペレーティングシステムにも、Satellite サブスクリプションをアタッチする必要があります。
前提条件
- Red Hat Enterprise Linux 7 サーバーが Satellite の ストレージ要件 を満たしている。
手順
- Attaching the Satellite Infrastructure Subscription の手順に従い、サーバーに Satellite サブスクリプションをアタッチします。
すべてのリポジトリーを無効にし、以下のリポジトリーのみを有効にします。
# subscription-manager repos --disable '*' # subscription-manager repos --enable=rhel-server-rhscl-7-rpms \ --enable=rhel-7-server-rpms --enable=rhel-7-server-satellite-6.10-rpms
4.13.3. PostgreSQL のインストール リンクのコピーリンクがクリップボードにコピーされました!
インストール可能な PostgreSQL は、内部データベースのインストール中に satellite-installer ツールでインストールされたものと同じバージョンの PostgreSQL のみになります。PostgreSQL はサポート対象のバージョンであれば、Red Hat Enteprise Linux Server 7 リポジトリーからまたは外部ソースからインストールすることが可能です。Satellite は PostgreSQL バージョン 12.1 をサポートします。
手順
PostgreSQL をインストールするには、以下のコマンドを入力します。
# yum install rh-postgresql12-postgresql-server \ rh-postgresql12-syspaths \ rh-postgresql12-postgresql-evrPostgreSQL を初期化するには、以下のコマンドを入力します。
# postgresql-setup initdb/var/opt/rh/rh-postgresql12/lib/pgsql/data/postgresql.confファイルを編集します。# vi /var/opt/rh/rh-postgresql12/lib/pgsql/data/postgresql.conf#を削除して、着信接続をリッスンするようにします。listen_addresses = '*'/var/opt/rh/rh-postgresql12/lib/pgsql/data/pg_hba.confファイルを編集します。# vi /var/opt/rh/rh-postgresql12/lib/pgsql/data/pg_hba.conf以下の行をファイルに追加します。
host all all Satellite_ip/24 md5PostgreSQL サービスを起動し、有効にするには、以下のコマンドを実行します。
# systemctl start postgresql # systemctl enable postgresql外部 PostgreSQL サーバーで postgresql ポートを開きます。
# firewall-cmd --add-service=postgresql # firewall-cmd --runtime-to-permanentpostgresユーザーに切り替え、PostgreSQL クライアントを起動します。$ su - postgres -c psql3 つのデータベースと専用のロールを作成します。1 つは Satellite 用、1 つは Candlepin 用、もう 1 つは Pulp 用です。
CREATE USER "foreman" WITH PASSWORD 'Foreman_Password'; CREATE USER "candlepin" WITH PASSWORD 'Candlepin_Password'; CREATE USER "pulp" WITH PASSWORD 'Pulpcore_Password'; CREATE DATABASE foreman OWNER foreman; CREATE DATABASE candlepin OWNER candlepin; CREATE DATABASE pulpcore OWNER pulp;postgresユーザーをログアウトします。# \qSatellite Server から、データベースにアクセスできることをテストします。接続に成功した場合には、コマンドは
1を返します。# PGPASSWORD='Foreman_Password' psql -h postgres.example.com -p 5432 -U foreman -d foreman -c "SELECT 1 as ping" # PGPASSWORD='Candlepin_Password' psql -h postgres.example.com -p 5432 -U candlepin -d candlepin -c "SELECT 1 as ping" # PGPASSWORD='Pulpcore_Password' psql -h postgres.example.com -p 5432 -U pulp -d pulpcore -c "SELECT 1 as ping"
4.13.4. 外部データベースを使用するための Satellite の設定 リンクのコピーリンクがクリップボードにコピーされました!
satellite-installer コマンドを使用して Satellite が外部の PostgreSQL データベースに接続するように設定します。
前提条件
- Red Hat Enterprise Linux サーバーに PostgreSQL データベースをインストールおよび設定していること。
手順
Satellite の外部データベースを設定するには以下のコマンドを入力します。
satellite-installer --scenario satellite \ --foreman-db-host postgres.example.com \ --foreman-db-password Foreman_Password \ --foreman-db-database foreman \ --foreman-db-manage false \ --katello-candlepin-db-host postgres.example.com \ --katello-candlepin-db-name candlepin \ --katello-candlepin-db-password Candlepin_Password \ --katello-candlepin-manage-db false \ --foreman-proxy-content-pulpcore-manage-postgresql false \ --foreman-proxy-content-pulpcore-postgresql-host postgres.example.com \ --foreman-proxy-content-pulpcore-postgresql-db-name pulpcore \ --foreman-proxy-content-pulpcore-postgresql-password Pulpcore_Password --foreman-proxy-content-pulpcore-postgresql-user pulpこれらの外部データベースに対して Secure Sockets Layer (SSL) プロトコルを有効にするには、次のオプションを追加します。
--foreman-db-sslmode verify-full --foreman-db-root-cert <path_to_CA> --katello-candlepin-db-ssl true --katello-candlepin-db-ssl-verify true --foreman-proxy-content-pulpcore-postgresql-ssl true --foreman-proxy-content-pulpcore-postgresql-ssl-root-ca <path_to_CA>