第3章 Satellite Server での追加設定の実行
3.1. Satellite Tools リポジトリーのインストール
The Satellite Tools repository provides the katello-agent
and puppet
packages for clients registered to Satellite Server. Installing the Katello agent is recommended to allow remote updates of clients. The base system of a Capsule Server is a client of Satellite Server and therefore must also have the Katello agent installed.
手順
To install the Satellite Tools repository, complete the following steps:
- Satellite Web UI で、コンテンツ > Red Hat サブスクリプション に移動します。
- 検索フィールドを使用して Red Hat Satellite Tools 6.5 (for RHEL 7 Server) (RPMs) のリポジトリー名を入力します。
利用可能なリポジトリーペインで、Red Hat Satellite Tools 6.5 (for RHEL 7 Server) (RPMs) をクリックして、リポジトリーセットを展開します。
Red Hat Satellite Tools 6.5 の項目が表示されていない場合は、カスタマーポータルから取得したサブスクリプションマニフェストにその項目が含まれないことが原因として考えられます。この問題を修正するには、カスタマーポータルにログインし、これらのリポジトリーを追加し、サブスクリプションマニフェストをダウンロードして、Satellite にインポートします。
-
x86_64
エントリーでは、有効化 アイコンをクリックして、リポジトリーを有効にします。
ホストで実行している Red Hat Enterprise Linux の各サポート対象メジャーバージョンに対して Satellite Tools リポジトリーを有効にします。Red Hat リポジトリーの有効後に、このリポジトリーの製品が自動的に作成されます。
CLI をご利用の場合
Install the Satellite Tools repository using the hammer repository-set enable
command:
# hammer repository-set enable --organization "initial_organization_name" \
--product 'Red Hat Enterprise Linux Server' \
--basearch='x86_64' \
--name 'Red Hat Satellite Tools 6.5 (for RHEL 7 Server) (RPMs)'
3.2. Synchronizing the Satellite Tools Repository
Use this section to synchronize the Satellite Tools repository from the Red Hat Content Delivery Network (CDN) to your Satellite. This repository repository provides the katello-agent
and puppet
packages for clients registered to Satellite Server.
手順
To synchronize the Satellite Tools repository, complete the following steps:
In the Satellite web UI, navigate to Content > Sync Status.
同期可能な製品リポジトリーのリストが表示されます。
- Click the arrow next to the Red Hat Enterprise Linux Server product to view available content.
- Select Red Hat Satellite Tools 6.5 (for RHEL 7 Server) RPMs x86_64.
- 今すぐ同期 をクリックします。
CLI をご利用の場合
Synchronize your Satellite Tools repository using the hammer repository synchronize
command:
# hammer repository synchronize --organization "initial_organization_name" \
--product 'Red Hat Enterprise Linux Server' \
--name 'Red Hat Satellite Tools 6.5 for RHEL 7 Server RPMs x86_64' \
--async
3.3. HTTP プロキシーを使用した Satellite Server の設定
ネットワークで HTTP プロキシーを使用している場合は、Red Hat コンテンツ配信ネットワーク (CDN) または別のコンテンツソースへの要求送信に HTTP プロキシーを使用するように Satellite Server を設定できます。ネットワークの変更が原因で接続が失われるのを回避するために、可能な限り IP の代わりに FQDN を使用します。
以下の手順では、Satellite のコンテンツダウンロード専用のプロキシーを設定します。
認証メソッド
Basic 認証のみがサポートされます。ユーザー名とパスワード情報を --katello-proxy-url
オプションに追加するか、--katello-proxy-username
および --katello-proxy-password
オプションを使用します。
HTTP プロキシーを使用した Satellite Server の設定
http_proxy
、https_proxy
、およびno_proxy
の変数が設定されていないことを確認します。# unset http_proxy # unset https_proxy # unset no_proxy
HTTP プロキシーオプションを使用して
satellite-installer
を実行します。# satellite-installer --scenario satellite \ --katello-proxy-url=http://myproxy.example.com \ --katello-proxy-port=8080 \ --katello-proxy-username=proxy_username \ --katello-proxy-password='proxy_password'
Satellite Server が Red Hat CDN に接続し、リポジトリーを同期できることを確認します。
ネットワークゲートウェイと HTTP プロキシーで、以下のホスト名に対して TCP を有効にします。
ホスト名 ポート プロトコル subscription.rhsm.redhat.com
443
HTTPS
cdn.redhat.com
443
HTTPS
*.akamaiedge.net
443
HTTPS
cert-api.access.redhat.com (Red Hat Insights を使用している場合)
443
HTTPS
api.access.redhat.com (Red Hat Insights を使用している場合)
443
HTTPS
Satellite Server は、SSL で安全に Red Hat CDN と通信します。SSL インターセプトプロキシーを使用すると、この通信が妨害されます。これらのホストは、プロキシーでホワイトリスト化されている必要があります。
Red Hat CDN (cdn.redhat.com) で使用されている IP アドレスの一覧は、Red Hat カスタマーポータルのナレッジベース記事「Red Hat が公開している CIDR の一覧」を参照してください。
Satellite Server の
/etc/rhsm/rhsm.conf
ファイルで、以下の詳細を記入します。# an http proxy server to use (enter server FQDN) proxy_hostname = myproxy.example.com # port for http proxy server proxy_port = 8080 # user name for authenticating to an http proxy, if needed proxy_user = # password for basic http proxy auth, if needed proxy_password =
カスタムポートに関する SELinux の考慮事項
SELinux を使用すると、Red Hat Satellite 6 と Red Hat Subscription Manager のアクセスが、特定ポートに限定されます。HTTP キャッシュの TCP ポートは、8080、8118、8123、および 10001 ~ 10010 になります。SELinux のタイプ http_cache_port_t
がないポートを使用する場合は、以下のステップを行います。
以下のコマンドを実行して、SELinux で HTTP キャッシュに許可されているポートを確認します。
# semanage port -l | grep http_cache http_cache_port_t tcp 8080, 8118, 8123, 10001-10010 [output truncated]
以下のコマンドを実行して、SELinux が HTTP キャッシュにポート (たとえば、8088) を許可するよう設定します。
# semanage port -a -t http_cache_port_t -p tcp 8088
3.4. 全 Satellite HTTP 要求での HTTP プロキシーの使用
Satellite Server は、HTTP および HTTPS をブロックするファイアウォールの内側に設定する必要がある場合に、コンピュートリソースなどの外部システムとの通信に使用するプロキシーを設定してください。
プロビジョニングにコンピュートリソースを使用し、コンピュートリソースと、異なる HTTP プロキシーを併用する場合には、コンピュートリソースに設定したプロキシーではなく、Satellite 通信すべてに設定したプロキシーが優先されます。
Satellite からの HTTP 送信接続すべてに、HTTP プロキシーを設定するには、以下の手順を実行します。
- Satellite Web UI で、管理 > 設定 に移動します。
- HTTP(S) プロキシー の行で、隣接する Value 列を選択して、プロキシーの URL を入力します。
- チェックのアイコンをクリックして変更を保存します。
プロキシー化された要求を受信しないようにホストを除外する手順
Satellite HTTP または HTTPS 要求に HTTP プロキシーを使用する場合は、プロキシー経由で通信しないように、特定のホストを除外できます。
プロキシー経由の通信を使用しないように、ホスト 1 つまたは複数を除外するには、以下の手順を実行します。
- Satellite Web UI で、管理 > 設定 に移動します。
- ホスト以外の HTTP(S) プロキシー の行で、隣接する Value の列を選択して、プロキシー要求から除外する、1 つまたは複数のホストの名前を入力します。
- チェックのアイコンをクリックして変更を保存します。
3.5. Resetting the HTTP Proxy
If you want to reset the current HTTP proxy setting, enter the following command:
# satellite-installer --scenario satellite --reset-katello-proxy-url \ --reset-katello-proxy-port --reset-katello-proxy-username \ --reset-katello-proxy-password
3.6. 管理対象ホスト上での電源管理の有効化
Satellite Server でベースボード管理コントローラー (BMC) を有効にすると、IPMI (Intelligent Platform Management Interface) または類似したプロトコルを使用して、管理対象ホストで電源管理コマンドを使用できます。
BMC サービスを使用すると、さまざまな電源管理タスクを実行できます。この機能の基礎となるプロトコルは IPMI です (BMC 機能とも呼ばれます)。IPMI は、ホストの CPU から独立して実行する専用プロセッサーに接続された管理対象ハードウェア上で、特別なネットワークインターフェースを使用します。多くのインスタンスで、BMC 機能はシャーシ管理の一部として、シャーシベースのシステムに組み込まれます (シャーシの専用モジュール)。
BMC サービスの詳細は『ホストの管理』の「追加のネットワークインターフェースの設定」を参照してください。
作業開始前の準備
- すべての管理対象ホストに BMC タイプのネットワークインターフェースが搭載されている必要があります。Satellite はこの NIC を使用して適切な認証情報をホストに渡します。
管理対象ホスト上での電源管理の有効化
オプションを使用してインストーラーを実行し、BMC を有効にします。
# satellite-installer --foreman-proxy-bmc "true" \ --foreman-proxy-bmc-default-provider "freeipmi"
3.7. Satellite Server で DNS、DHCP、および TFTP の設定
Satellite Server では、DNS、DHCP、および TFTP を設定できます。
外部サービスを設定する場合は、詳細について「Satellite Server での外部サービスの設定」を参照してください。
これらのサービスを手動で管理するために Satellite でサービスを無効にする場合は、詳細について「管理対象外ネットワークに対して DNS、DHCP、および TFTP を無効化」を参照してください。
設定可能な全オプションを表示するには、satellite-installer --scenario satellite --help
コマンドを実行します。
作業開始前の準備
- ネットワーク管理者に連絡して正しい設定が行われていることを確認します。
以下の情報を用意する必要があります。
- DHCP IP アドレス範囲
- DHCP ゲートウェイ IP アドレス
- DHCP ネームサーバー IP アドレス
- DNS 情報
- TFTP サーバー名
- ネットワークの変更の場合は、可能な限り、IP アドレスの代わりに FQDN を使用します。
Satellite Server での DNS、DHCP、および TFTP の設定
使用している環境に適切なオプションを使用して
satellite-installer
を実行します。# satellite-installer --scenario satellite \ --foreman-proxy-dns true \ --foreman-proxy-dns-managed true \ --foreman-proxy-dns-interface eth0 \ --foreman-proxy-dns-zone example.com \ --foreman-proxy-dns-forwarders 172.17.13.1 \ --foreman-proxy-dns-reverse 13.17.172.in-addr.arpa \ --foreman-proxy-dhcp true \ --foreman-proxy-dhcp-managed true \ --foreman-proxy-dhcp-interface eth0 \ --foreman-proxy-dhcp-range "172.17.13.100 172.17.13.150" \ --foreman-proxy-dhcp-gateway 172.17.13.1 \ --foreman-proxy-dhcp-nameservers 172.17.13.2 \ --foreman-proxy-tftp true \ --foreman-proxy-tftp-managed true \ --foreman-proxy-tftp-servername $(hostname)
DHCP、DNS および TFTP サービスの情報は、『プロビジョニングガイド』の「ネットワークサービスの設定」セクションを参照してください。
このスクリプトは、進捗を表示し、
/var/log/foreman-installer/satellite.log
にログを記録します。/etc/foreman-installer/scenarios.d/satellite-answers.yaml
ファイルで、admin_password
パラメーターなど、使用する設定を表示できます。
設定を変更するには、satellite-installer を再び実行する必要があります。スクリプトは複数回実行でき、すべての設定ファイルが変更された値で更新されます。
3.8. 管理対象外ネットワークに対して DNS、DHCP、および TFTP の無効化
TFTP、DHCP および DNS サービスを手動で管理する場合には、Satellite がオペレーティングシステム上でこれらのサービスを管理しないようにし、オーケストレーションを無効にして、DHCP および DNS バリデーションエラーを回避する必要があります。ただし、Satellite ではオペレーティングシステムのバックエンドサービスは削除されません。
手順
オペレーティングシステム上で Satellite による DHCP、DNS、および TFTPサービスを管理を回避し、オーケストレーションを無効にするには、次の手順を実行します。
Satellite Server で以下のコマンドを入力します。
# satellite-installer --foreman-proxy-dhcp false \ --foreman-proxy-dns false \ --foreman-proxy-tftp false
- Satellite Web UI で、インフラストラクチャー > Capsule に移動し、サブネットを選択します。
- Capsules タブで、DHCP Capsule、TFTP Capsule、および 逆引き DNS Capsule を選択します。
- インフラストラクチャー > ドメイン に移動し、ドメインを選択します。
- DNS Capsule フィールドの内容を消去します。
オプション: サードパーティーが提供する DHCP サービスを使用する場合は、以下のオプションを渡すように DHCP サーバーを設定します。
Option 66: IP_address_of_Satellite_or_Capsule Option 67: /pxelinux.0
DHCP オプションの詳細は「RFC 2132」を参照してください。
Satellite 6 は、Capsule が該当するサブネットとドメインに設定されていない場合にオーケストレーションを実行しません。Capsule の関連付けを有効または無効にした場合に、想定のレコードと設定ファイルが存在しないと、既存のホストのオーケストレーションコマンドが失敗することがあります。オーケストレーションを有効にするために Capsule を関連付ける場合は、今後、ホストの削除に失敗しないように、既存の Satellite ホストに対して必要な DHCP レコード、DNS レコード、TFTP ファイルが所定の場所にあることを確認します。
3.9. Satellite Server で送信メールの設定
Satellite Server からメールメッセージを送信するには、SMTP サーバーまたは sendmail
コマンドのいずれかを使用できます。
前提条件
前回のリリースからアップグレードしている場合は、設定ファイル /usr/share/foreman/config/email.yaml
の名前を変更するか削除して、httpd
サービスを再起動してください。例を示します。
# mv /usr/share/foreman/config/email.yaml \ /usr/share/foreman/config/email.yaml-backup # systemctl restart httpd
Satellite Server で送信メールの設定
-
Satellite web UI で、管理
設定 に移動します。 Email タブをクリックして、希望する配信方法に一致する設定オプションを設定します。変更は即座に反映されます。
以下の例は、SMTP サーバーを使用する場合の設定オプションの例を示しています。
表3.1 配信方法に SMTP サーバーを使用する例 名前 値例 配信方法
SMTP
SMTP アドレス
smtp.example.com
SMTP 認証
ログイン
SMTP HELO/EHLO ドメイン
example.com
SMTP パスワード
パスワード
SMTP ポート
25
SMTP ユーザー名
satellite@example.com
SMTP ユーザー名
とSMTP パスワード
では、SMTP サーバーのログイン認証情報を指定します。以下の例では、gmail.com が SMTP サーバーとして使用されています。
表3.2 gmail.com を SMTP サーバーとして使用する例 名前 値例 配信方法
SMTP
SMTP アドレス
smtp.gmail.com
SMTP 認証
plain
SMTP HELO/EHLO ドメイン
smtp.gmail.com
SMTP enable StartTLS auto
あり
SMTP パスワード
パスワード
SMTP ポート
587
SMTP ユーザー名
user@gmail.com
以下の例では、
sendmail
コマンドが配信方法として使用されています。表3.3 配信方法に sendmail を使用する例 名前 値例 配信方法
Sendmail
Sendmail の引数
-i -t -G
Sendmail の引数
では、sendmail
コマンドに渡すオプションを指定します。デフォルト値は、-i -t
です。詳細は、sendmail 1 の man ページを参照してください。
TLS 認証を使用する SMTP サーバーで電子メールを送信する場合は、以下のいずれかの手順を実行してください。
SMTP サーバーの CA 証明書を信頼済みとしてマークします。このようにマークするには、Satellite Server で以下のコマンドを実行します。
# cp mailca.crt /etc/pki/ca-trust/source/anchors/ # update-ca-trust enable # update-ca-trust
ここで、
mailca.crt
は SMTP サーバーの CA 証明書です。-
別の方法では、web UI の
SMTP enable StartTLS auto
オプションをNo
に設定します。
-
Test email をクリックしてユーザーのメールアドレスにテストメッセージを送信し、設定が機能していることを確認します。メッセージの送信に失敗する場合は、web UI でエラーが表示されます。詳細については、
/var/log/foreman/production.log
のログを確認してください。
個々のユーザーまたはユーザーグループに対する電子メール通知の設定は、『Red Hat Satellite の管理』の「電子メール通知の設定」を参照してください。
3.10. カスタムサーバー証明書を使用した Satellite Server の設定
SSL 証明書は、情報を保護し、通信を安全にするために使用されます。Red Hat Satellite 6 は自己署名 SSL 証明書を作成し、Satellite Server、外部の Capsule Server、およびすべてのホスト間で暗号化された通信を有効します。必要に応じて、デフォルト証明書をカスタム証明書に置き換えることができます。これらの自己署名証明書を使用する代わりに、外部の信頼できる企業である認証局が発行したカスタム SSL 証明書をインストールすることもできます。たとえば、会社のセキュリティーポリシーで、認証局から SSL 証明書を取得することが規定されている場合があります。証明書を取得するには、「Satellite Server 向けの SSL 証明書の取得」 にあるように 証明書署名要求 (CSR) を作成して認証局に送信します。すると、署名済み SSL 証明書が送られてきます。
Satellite サーバーでカスタム証明書を使用するには、これらの手順を完了します。
- 「Satellite Server 向けの SSL 証明書の取得」
- 「Satellite Server の SSL 証明書の検証」
- 「カスタム証明書パラメーターを使用した Satellite インストーラーの実行」
- 「Satellite Server に接続されたすべてのホストへの新しい証明書のインストール」
- Satellite Server に外部の Capsule Server を登録した場合には、『CAPSULE SERVER のインストール』の「カスタムサーバー証明書を使用した Capsule Server の設定」に移動して、 Capsule Server がカスタムの証明書を使用するように設定します。
3.10.1. Satellite Server 向けの SSL 証明書の取得
Satellite Server 向けのカスタム SSL 証明書がすでにある場合は、この手順を省略します。
SSL 証明書には、PEM エンコードを使用してください。
手順
Satellite Server の カスタム SSL 証明書を取得するには、次の手順を実行します。
root
ユーザーのみがアクセスできる、全ソース証明書ファイルの保存用のディレクトリーを作成します (例:/root/sat_cert
)。# mkdir /root/sat_cert
証明書署名要求 (CSR) を署名する秘密鍵を作成します。
注記Satellite Server 向けの秘密鍵がすでにある場合は、この手順を省略します。
# openssl genrsa -out
/root/sat_cert/satellite_cert_key.pem
4096証明書署名要求 (CSR) 用に
/root/sat_cert/openssl.cnf
設定ファイルを作成し、以下の内容を追加します。[ req_distinguished_name ]
セクションで、組織の情報を入力します。注記証明書の Common Name (CN) およびは Subject Alternative Name (SAN) の DNS.1 は、証明書を使用するサーバーの完全修飾ドメイン名 (FQDN) と同じでなければなりません。要求しているのが Satellite Server の証明書の場合には、これは Satellite Server の FQDN で、Capsule サーバーの証明書の場合には、Capsule サーバーの FQDN です。
サーバーの FQDN を確認するには、該当するサーバーでコマンド
hostname -f
を実行します。[ req ] req_extensions = v3_req distinguished_name = req_distinguished_name x509_extensions = usr_cert prompt = no [ req_distinguished_name ] C = Country Name (2 letter code) ST = State or Province Name (full name) L = Locality Name (eg, city) O = Organization Name (eg, company) OU = The division of your organization handling the certificate CN = satellite.example.com [ v3_req ] basicConstraints = CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection subjectAltName = @alt_names [ usr_cert ] basicConstraints=CA:FALSE nsCertType = client, server, email keyUsage = nonRepudiation, digitalSignature, keyEncipherment extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection nsComment = "OpenSSL Generated Certificate" subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer [ alt_names ] DNS.1 = satellite.example.com
証明書署名要求 (CSR) を作成します。
# openssl req -new \ -key /root/sat_cert/satellite_cert_key.pem \ -out /root/sat_cert/satellite_cert_csr.pem \ -config /root/sat_cert/openssl.cnf
証明局に証明書署名要求を送信します。同じ証明局が Satellite Server と Capsule Server の証明書に署名する必要があります。
要求を送信する場合は、証明書の有効期限を指定してください。証明書要求を送信する方法は異なるため、推奨の方法について認証局にお問い合わせください。要求への応答で、認証局バンドルと署名済み証明書を別々のファイルで受け取ることになります。
3.10.2. Satellite Server の SSL 証明書の検証
以下の例のように、必要なパラメーターを使用して katello-certs-check
コマンドを入力します。これにより、カスタム証明書に必要な入力ファイルが検証され、これらを Satellite サーバー、すべての Capsule サーバー、および Satellite で管理されているホストにインストールするために必要なコマンドが出力されます。
カスタム SSL 証明書入力ファイルを検証します。ファイルに一致するようファイル名を変更します。
# katello-certs-check \ -c /root/sat_cert/satellite_cert.pem \ 1 -k /root/sat_cert/satellite_cert_key.pem \ 2 -b /root/sat_cert/ca_cert_bundle.pem 3
katello-certs-check
の出力例
Checking server certificate encoding: [OK] Checking expiration of certificate: [OK] Checking expiration of CA bundle: [OK] Checking if server certificate has CA:TRUE flag [OK] Checking to see if the private key matches the certificate: [OK] Checking CA bundle against the certificate file: [OK] Checking Subject Alt Name on certificate [WARNING] The /root/sat_cert/satellite_cert.pem does not contain a Subject Alt Name. Checking Key Usage extension on certificate for Key Encipherment [OK] Validation succeeded To use them inside a NEW $CAPSULE, run this command: capsule-certs-generate --foreman-proxy-fqdn "$CAPSULE" \ --certs-tar "~/$CAPSULE-certs.tar" \ --server-cert "/root/sat_cert/satellite_cert.pem" \ --server-key "/root/sat_cert/satellite_cert_key.pem" \ --server-ca-cert "/root/sat_cert/bundle2.crt" \ To use them inside an EXISTING $CAPSULE, run this command INSTEAD: capsule-certs-generate --foreman-proxy-fqdn "$CAPSULE" \ --certs-tar "~/$CAPSULE-certs.tar" \ --server-cert "/root/sat_cert/satellite_cert.pem" \ --server-key "/root/sat_cert/satellite_cert_key.pem" \ --server-ca-cert "/root/sat_cert/bundle2.crt" \ --certs-update-server
3.10.3. カスタム証明書パラメーターを使用した Satellite インストーラーの実行
この時点で SSL 証明書が作成され、Red Hat Satellite 6 で使用できることが確認されました。次の手順は、カスタム SSL 証明書を Satellite Server とそのすべてのホストにインストールすることです。
この手順は、Satellite Server がすでにインストールされているかどうかに応じて、少し異なります。Satellite Server がすでにインストールされている場合は、既存の証明書を証明書アーカイブの証明書で更新する必要があります。
このセクションのコマンドは、「Satellite Server の SSL 証明書の検証」 で説明されたように katello-certs-check
コマンドの出力を使用します。katello-certs-check
の出力は、ターミナルにコピーアンドペーストできます。
インストールの状況に応じて、
satellite-installer
コマンドを実行します。Satellite がすでにインストールされている場合は、Satellite サーバーで以下のコマンドを実行します。
# satellite-installer --scenario satellite \ --certs-server-cert /root/sat_cert/satellite_cert.pem \ --certs-server-key /root/sat_cert/satellite_cert_key.pem \ --certs-server-ca-cert /root/sat_cert/ca_cert_bundle.pem \ --certs-update-server --certs-update-server-ca
このコマンドの重要なパラメーターは
--certs-update-server
と--certs-update-server-ca
です。これにより、サーバーの SSL 証明書と認証局を更新するよう指定されます。すべてのインストーラーのパラメーターの簡単な説明は、satellite-installer --scenario satellite --help
コマンドを実行します。注記satellite-installer
コマンドにおけるファイルはすべて、相対パス名ではなく完全パス名を使用します。インストーラーにより、すべてのファイルのパスと名前が記録されます。インストーラーを異なるディレクトリーから再び実行する場合は、元のファイルを見つけることができないため、失敗します。Satellite を まだインストールしていない 場合は、Satellite Server で以下のコマンドを実行します。
# satellite-installer --scenario satellite \ --certs-server-cert /root/sat_cert/satellite_cert.pem \ --certs-server-key /root/sat_cert/satellite_cert_key.pem \ --certs-server-ca-cert /root/sat_cert/ca_cert_bundle.pem
注記satellite-installer
コマンドにおけるファイルはすべて、相対パス名ではなく完全パス名を使用します。インストーラーにより、すべてのファイルのパスと名前が記録されます。インストーラーを異なるディレクトリーから再び実行する場合は、元のファイルを見つけることができないため、失敗します。
-
証明書をホストにインストールする前に証明書が Satellite サーバーに正常にインストールされていることを確認します。Satellite サーバーへのネットワークアクセスがあるコンピューターで、Web ブラウザーを起動し、URL
https://satellite.example.com
に移動して、証明書の詳細を参照します。
3.10.4. Satellite Server に接続されたすべてのホストへの新しい証明書のインストール
カスタム SSL 証明書が Satellite サーバーにインストールされたので、Satellite サーバーに登録されている各ホストにもインストールする必要があります。すべての該当するホストで以下のコマンドを実行します。
ホスト上で現行の
katello-ca-consumer
パッケージを削除します。# yum remove 'katello-ca-consumer*'
ホストにカスタム SSL 証明書をインストールします。
# yum localinstall http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
3.11. Satellite での外部データベースの使用
Red Hat Satellite のインストールプロセスの一部として、satellite-installer コマンドは MongoDB および PostgreSQL のデータベースを Satellite と同じサーバー上にインストールします。Satellite のデプロイメントによっては、外部データベースがサーバーの負荷を軽減する場合もあります。ただし、Satellite Server のパフォーマンスに影響を与える可能性のある要素は多数あります。外部データベースに移動すると、固有の問題に対応できない可能性があります。
外部データベースに MongoDB と PostgreSQL のどちらのデータベースが使用できるかについては、要件によって異なります。
Red Hat では、外部データベースのメンテナンスのサポートやそのためのツールは提供していません。これにはバックアップ、アップグレード、データベースのチューニングが含まれます。外部データベースを使用しているお客様は、外部データベースをサポート、メンテナンスする独自のデータベース管理者が必要になります。
お使いの Satellite デプロイメントで外部データベースを必要とする場合は、以下の情報を使用して、Satellite から外部データベースにポイントするように設定します。
3.11.1. 外部データベースとして MongoDB を使用する際の注意点
Pulp は MongoDB データベースを使用します。MongoDB を外部データベースとして使用する場合は、以下の情報を参照してお使いの Satellite 設定にこのオプションが適しているかどうかを判定してください。
外部 MongoDB の利点
- Satellite 上の空きメモリーと空き CPU が増えます。
- Satellite 操作にマイナスの影響をもたらすことなく MongoDB サーバーのシステムを調整する柔軟性が得られます。
外部 MongoDB のマイナス点
- デプロイメントの複雑性が増し、問題解決がより困難になります。
- 外部 MongoDB サーバーだと、パッチおよびメンテナンス対象に新たなシステムが加わることになります。
- Satellite または Mongo データベースサーバーのいずれかにハードウェアまたはストレージ障害が発生すると、Satellite が機能しなくなります。
- Satellite と外部データベースサーバーの間でレイテンシーが発生すると、パフォーマンスに影響が出ます。
お使いの Mongo データベースが遅いと感じられる場合は、Red Hat サポートチームと協力して問題解決に当たることができます。Satellite 6 での設定問題や既存のパフォーマンス問題については、外部データベースサーバーに移行したとしても解決が期待できないものもあります。Red Hat サポートチームは既知の問題を調査するほか、Satellite エンジニアリングチームとも協力して根本原因を見つけ出します。
3.11.2. 外部データベースとして PostgreSQL を使用する際の注意点
Foreman、Katello、および Candlepin は PostgreSQL データベースを使用します。PostgreSQL を外部データベースとして使用する場合は、以下の情報を参照してお使いの Satellite 設定にこのオプションが適しているかどうかを判定してください。
外部 PostgreSQL の利点
- Satellite 上の空きメモリーと空き CPU が増えます。
-
PostgreSQL データベースで
shared_buffers
を高い値に設定しても、Satellite 上の他のサービスの妨げるリスクがありません。 - Satellite 操作にマイナスの影響をもたらすことなく PostgreSQL サーバーのシステムを調整する柔軟性が得られます。
外部 PostgreSQL のマイナス点
- デプロイメントの複雑性が増し、問題解決がより困難になります。
- 外部 PostgreSQL サーバーだと、パッチおよびメンテナンス対象に新たなシステムが加わることになります。
- Satellite または PostgreSQL データベースサーバーのいずれかにハードウェアまたはストレージ障害が発生すると、Satellite が機能しなくなります。
- Satellite と外部データベースサーバーの間でレイテンシーが発生すると、パフォーマンスに影響が出ます。
お使いの Satellite 上の PostgreSQL データベースがパフォーマンスを低下させていることが疑われる場合は、 Satellite 6: How to enable postgres query logging to detect slow running queries を参照して遅いクエリがあるかどうか判定します。1 秒以上かかるクエリがある場合は、通常、大規模インストールのパフォーマンスが原因であることが多く、外部データベースに移行しても問題解決が期待できません。遅いクエリがある場合は、Red Hat サポートチームまでお問い合わせください。
3.11.3. 概要
Satellite 用にリモートデータベースを作成して使用するには、以下の手順を実行します。
- 「ストレージの要件とガイドライン」を使用して、外部データベースのストレージ要件をプランニングします。
- PostgreSQL で Foreman および Candlepin 用のデータベースを準備し、Foreman と Candlepin の所有権を持つ専用ユーザーを作成します。
-
pulp_database
を所有しているpulp
ユーザーで MongoDB を準備します。 - 最初の手順に従い、Satellite をインストールし、データベースが Satellite からアクセスできることを確認します。
-
satellite-installer
のパラメーターを、新規データベースを参照するように編集し、satellite-installer
を実行します。
Red Hat Enterprise Linux Server 7 をデータベースインストール用に準備する
「ストレージの要件とガイドライン」のストレージ要件を満たす、最新の Red Hat Enterprise Linux Server 7 で、新たにシステムをプロビジョニングする必要があります。
Red Hat Software Collections および Red Hat Enterprise Linux のサブスクリプションでは、外部データベースと Satellite を併用する場合に、正しいサービスレベルアグリーメントが提供されません。外部データベースに使用するベースシステムに、Satellite サブスクリプションもアタッチする必要があります。
- 「Satellite サブスクリプションの特定およびホストへのアタッチ」にある説明を参照して、Satellite サブスクリプションをサーバーにアタッチします。
MongoDB および PostgreSQL サーバーを Red Hat Enterprise Linux Server 7 にインストールするには、すべてのリポジトリーを無効にし、以下のリポジトリーのみを有効にする必要があります。
# subscription-manager repos --disable '*' # subscription-manager repos --enable=rhel-server-rhscl-7-rpms \ --enable=rhel-7-server-rpms
3.11.4. MongoDB のインストール
インストール可能な MongoDB は、内部データベースのインストール中に satellite-installer
ツールでインストールされたものと同じバージョンの MongoDB のみになります。MongoDB はサポート対象のバージョンであれば、Red Hat Software Collections (RHSCL) リポジトリーからまたは外部ソースからインストールすることが可能です。Satellite は MongoDB バージョン 3.4 をサポートしています。
MongoDB をインストールするには、以下のコマンドを入力します。
# yum install rh-mongodb34 rh-mongodb34-syspaths
rh-mongodb34 サービスを起動して有効にします。
# systemctl start rh-mongodb34-mongod # systemctl enable rh-mongodb34-mongod
pulp_database データベース用に、MongoDB に Pulp ユーザーを作成します。
# mongo pulp_database \ --eval "db.createUser({user:'pulp',pwd:'pulp_password',roles:[{role:'dbOwner', db:'pulp_database'},{ role: 'readWrite', db: 'pulp_database'}]})"
/etc/opt/rh/rh-mongodb34/mongod.conf
ファイルでバインド IP を指定します。bindIp: your_mongodb_server_bind_IP,::1
/etc/opt/rh/rh-mongodb34/mongod.conf
ファイルを編集してsecurity
セクションの認証を有効にします。security: authorization: enabled
rh-mongodb34-mongod
サービスを再起動します。# systemctl restart rh-mongodb34-mongod
MongoDB にポート 27017 を開きます。
# firewall-cmd --add-port=27017/tcp # firewall-cmd --runtime-to-permanent
Satellite Server から、データベースにアクセスできることをテストします。接続に成功した場合には、コマンドは
1
を返します。# scl enable rh-mongodb34 " mongo --host mongo.example.com \ -u pulp -p pulp_password --port 27017 --eval 'ping:1' pulp_database"
3.11.5. PostgreSQL のインストール
インストール可能な PostgreSQL は、内部データベースのインストール中に satellite-installer
ツールでインストールされたものと同じバージョンの PostgreSQL のみになります。Satellite がサポートするのは、Red Hat Enterprise Linux Server 7 リポジトリーから入手可能な特定バージョンの PostgreSQL のみになります。PostgreSQL はサポート対象のバージョンであれば、rhel-7-server-rpms リポジトリーからまたは外部ソースからインストールすることが可能です。サポート対象の PostgreSQL バージョンを格納しているリポジトリーについての情報は、『Package Manifest』を参照してください。
PostgreSQL をインストールするには、以下のコマンドを入力します。
# yum install postgresql-server
PostgreSQL サービスを初期化して起動し、有効にするには、以下のコマンドを実行します。
# postgresql-setup initdb # systemctl start postgresql # systemctl enable postgresql
/var/lib/pgsql/data/postgresql.conf
ファイルを編集します。# vi /var/lib/pgsql/data/postgresql.conf
#
を削除して、着信接続をリッスンするようにします。listen_addresses = '*'
/var/lib/pgsql/data/pg_hba.conf
ファイルを編集します。# vi /var/lib/pgsql/data/pg_hba.conf
以下の行を追加します。
host all all satellite_server_ip/24 md5
PostgreSQL サービスを再起動して、変更を適用します。
# systemctl restart postgresql
外部 PostgreSQL サーバーで postgresql ポートを開きます。
# firewall-cmd --add-service=postgresql # firewall-cmd --runtime-to-permanent
postgres
ユーザーに切り替え、PostgreSQL クライアントを起動します。$ su - postgres -c psql
Satellite と Candlepin 用にそれぞれ、データベース、および専用ロールを作成します。
CREATE USER "foreman" WITH PASSWORD 'Foreman_Password'; CREATE USER "candlepin" WITH PASSWORD 'Candlepin_Password'; CREATE DATABASE foreman OWNER foreman; CREATE DATABASE candlepin OWNER candlepin;
Satellite 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"
Satellite 用にリモートデータベースをインストールして設定するには以下のコマンドを入力します。
satellite-installer --scenario satellite \ --foreman-db-host postgres.example.com \ --foreman-db-password Foreman_Password \ --foreman-db-database foreman \ --katello-candlepin-db-host postgres.example.com \ --katello-candlepin-db-name candlepin \ --katello-candlepin-db-password Candlepin_Password \ --katello-candlepin-manage-db false \ --katello-pulp-db-username pulp \ --katello-pulp-db-password pulp_password \ --katello-pulp-db-seeds mongo.example.com:27017 \ --katello-pulp-db-name pulp_database
データベースのステータスをクエリーします。たとえば、以下のコマンドに --only
と postgresql
または rh-mongodb34-mongod
を追加して実行します。
PostgreSQL の場合は、以下のコマンドを実行します。
# foreman-maintain service status --only postgresql
MongoDB の場合は、以下のコマンドを実行します。
# foreman-maintain service status --only rh-mongodb34-mongod
3.12. mongod へのアクセスの制限
データ損失の危険を減らすために、MongoDB データベースデーモン mongod
へのアクセスは apache
ユーザーと root
ユーザーにだけ許可する必要があります。
Satellite Server と Capsule Server で mongod
へのアクセスを制限するには、以下のコマンドを使用します。
ファイヤーウォールを設定します。
# firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -o lo -p \ tcp -m tcp --dport 27017 -m owner --uid-owner apache -j ACCEPT \ && firewall-cmd --direct --add-rule ipv6 filter OUTPUT 0 -o lo -p \ tcp -m tcp --dport 27017 -m owner --uid-owner apache -j ACCEPT \ && firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -o lo -p \ tcp -m tcp --dport 27017 -m owner --uid-owner root -j ACCEPT \ && firewall-cmd --direct --add-rule ipv6 filter OUTPUT 0 -o lo -p \ tcp -m tcp --dport 27017 -m owner --uid-owner root -j ACCEPT \ && firewall-cmd --direct --add-rule ipv4 filter OUTPUT 1 -o lo -p \ tcp -m tcp --dport 27017 -j DROP \ && firewall-cmd --direct --add-rule ipv6 filter OUTPUT 1 -o lo -p \ tcp -m tcp --dport 27017 -j DROP \ && firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -o lo -p \ tcp -m tcp --dport 28017 -m owner --uid-owner apache -j ACCEPT \ && firewall-cmd --direct --add-rule ipv6 filter OUTPUT 0 -o lo -p \ tcp -m tcp --dport 28017 -m owner --uid-owner apache -j ACCEPT \ && firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -o lo -p \ tcp -m tcp --dport 28017 -m owner --uid-owner root -j ACCEPT \ && firewall-cmd --direct --add-rule ipv6 filter OUTPUT 0 -o lo -p \ tcp -m tcp --dport 28017 -m owner --uid-owner root -j ACCEPT \ && firewall-cmd --direct --add-rule ipv4 filter OUTPUT 1 -o lo -p \ tcp -m tcp --dport 28017 -j DROP \ && firewall-cmd --direct --add-rule ipv6 filter OUTPUT 1 -o lo -p \ tcp -m tcp --dport 28017 -j DROP
変更を永続化します。
# firewall-cmd --runtime-to-permanent