第3章 Satellite Server での追加設定の実行

3.1. Satellite Server での Red Hat Insights の使用

Red Hat Insights を使用すると、セキュリティー違反、パフォーマンスの低下、および安定性の消失に関連するシステムとダウンタイムを診断できます。ダッシュボードを使用して、安定性、セキュリティー、およびパフォーマンスの主要なリスクを素早く特定できます。また、カテゴリー別に分類したり、影響度および解決方法の詳細を表示したり、影響を受けたシステムを調べたりすることができます。

サブスクリプションマニフェストでは、Red Hat Insights のエンタイトルメントは必要ないことに注意してください。Satellite および Red Hat Insights の詳細については、 Satellite Red Hat Enterprise Linux (RHEL) 上の Red Hat Insights を参照してください。

Satellite Server を保守し、Satellite で発生する可能性のある問題を監視および診断する能力を向上させるには、Satellite Server に Red Hat Insights をインストールし、Satellite Server を Red Hat Insights に登録します。

insights-client のスケジューリング

Satellite に insights-client.timer を設定することで、デフォルトの insights-client 実行スケジュールを変更することができます。詳細は、『Client Configuration Guide for Red Hat Insights』の「Changing the insights-client schedule」を参照してください。

手順

  1. Satellite Server で Red Hat Insights をインストールするには、以下のコマンドを入力します。

    # satellite-maintain packages install insights-client
  2. Satellite Server を Red Hat Insights に登録するには、以下のコマンドを入力します。

    # insights-client --register

3.2. Satellite Tools リポジトリーの有効化

Satellite Tools リポジトリーは、Satellite Server に登録されたクライアント向けの katello-agent パッケージと puppet パッケージを提供します。クライアントのリモートアップデートを許可するために、Katello エージェントをインストールすることが推奨されます。Capsule Server のベースシステムは Satellite Server のクライアントであるため、Katello エージェントもインストールする必要があります。

手順

Satellite Tools リポジトリーを有効化するには、以下の手順を実行します。

  1. Satellite Web UI で、コンテンツ > Red Hat サブスクリプション に移動します。
  2. 検索フィールドを使用して Red Hat Satellite Tools 6.6 (for RHEL 7 Server) (RPMs) のリポジトリー名を入力します。
  3. 利用可能なリポジトリーペインで、Red Hat Satellite Tools 6.6 (for RHEL 7 Server) (RPMs) をクリックして、リポジトリーセットを展開します。

    Red Hat Satellite Tools 6.6 の項目が表示されていない場合は、カスタマーポータルから取得したサブスクリプションマニフェストにその項目が含まれないことが原因として考えられます。この問題を修正するには、カスタマーポータルにログインし、これらのリポジトリーを追加し、サブスクリプションマニフェストをダウンロードして、Satellite にインポートします。

  4. x86_64 エントリーでは、有効化 アイコンをクリックして、リポジトリーを有効にします。

ホストで実行している Red Hat Enterprise Linux の各サポート対象メジャーバージョンに対して Satellite Tools リポジトリーを有効にします。Red Hat リポジトリーの有効後に、このリポジトリーの製品が自動的に作成されます。

CLI をご利用の場合

hammer repository-set enable コマンドを使用して、Satellite Tools リポジトリーを有効化します。

# hammer repository-set enable --organization "initial_organization_name" \
--product 'Red Hat Enterprise Linux Server' \
--basearch='x86_64' \
--name 'Red Hat Satellite Tools 6.6 (for RHEL 7 Server) (RPMs)'

3.3. Satellite Tools リポジトリーの同期

本セクションを使用して、Red Hat コンテンツ配信ネットワーク (CDN) から Satellite に Satellite Tools リポジトリーを同期します。このリポジトリーを使用して、Satellite Server に登録したクライアントに katello-agentpuppet パッケージを提供します。

手順

Satellite Tools リポジトリーを同期するには、以下の手順を実行します。

  1. Satellite Web UI で、コンテンツ > 同期の状態 に移動します。

    同期可能な製品リポジトリーのリストが表示されます。

  2. Red Hat Enterprise Linux Server 製品の横にある矢印をクリックして、利用可能なコンテンツを表示します。
  3. Red Hat Satellite Tools 6.6 (RHEL 7 Server 用) RPMs x86_64 を選択します。
  4. 今すぐ同期 をクリックします。

CLI をご利用の場合

hammer repository synchronize コマンドを使用して、Satellite Tools リポジトリーを同期します。

# hammer repository synchronize --organization "initial_organization_name" \
--product 'Red Hat Enterprise Linux Server' \
--name 'Red Hat Satellite Tools 6.6 for RHEL 7 Server RPMs x86_64' \
--async

3.4. 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 の設定

  1. http_proxyhttps_proxy、および no_proxy の変数が設定されていないことを確認します。

    # unset http_proxy
    # unset https_proxy
    # unset no_proxy
  2. 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'
  3. Satellite Server が Red Hat CDN に接続し、リポジトリーを同期できることを確認します。

    1. ネットワークゲートウェイと 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 の一覧」を参照してください。

    2. 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 がないポートを使用する場合は、以下の手順を実行します。

  1. 以下のコマンドを実行して、SELinux で HTTP キャッシュに許可されているポートを確認します。

    # semanage port -l | grep http_cache
    http_cache_port_t       tcp    8080, 8118, 8123, 10001-10010
    [output truncated]
  2. 以下のコマンドを実行して、SELinux が HTTP キャッシュにポート (たとえば、8088) を許可するよう設定します。

    # semanage port -a -t http_cache_port_t -p tcp 8088

3.5. 全 Satellite HTTP 要求での HTTP プロキシーの使用

Satellite Server は、HTTP および HTTPS をブロックするファイアウォールの内側に設定する必要がある場合に、コンピュートリソースなどの外部システムとの通信に使用するプロキシーを設定してください。

プロビジョニングにコンピュートリソースを使用し、コンピュートリソースと、異なる HTTP プロキシーを併用する場合には、コンピュートリソースに設定したプロキシーではなく、Satellite 通信すべてに設定したプロキシーが優先されます。

Satellite からの HTTP 送信接続すべてに、HTTP プロキシーを設定するには、以下の手順を実行します。

  1. Satellite Web UI で、管理 > 設定 に移動します。
  2. HTTP(S) プロキシー の行で、隣接する Value 列を選択して、プロキシーの URL を入力します。
  3. チェックのアイコンをクリックして変更を保存します。

プロキシー化された要求を受信しないようにホストを除外する手順

Satellite HTTP または HTTPS 要求に HTTP プロキシーを使用する場合は、プロキシー経由で通信しないように、特定のホストを除外できます。

プロキシー経由の通信を使用しないように、ホスト 1 つまたは複数を除外するには、以下の手順を実行します。

  1. Satellite Web UI で、管理 > 設定 に移動します。
  2. ホスト以外の HTTP(S) プロキシー の行で、隣接する Value の列を選択して、プロキシー要求から除外する、1 つまたは複数のホストの名前を入力します。
  3. チェックのアイコンをクリックして変更を保存します。

3.6. HTTP プロキシーのリセット

現在の HTTP プロキシー設定をリセットする場合は、以下のコマンドを入力します。

# satellite-installer --scenario satellite --reset-katello-proxy-url \
 --reset-katello-proxy-port --reset-katello-proxy-username \
 --reset-katello-proxy-password

3.7. 管理対象ホスト上での電源管理の有効化

Intelligent Platform Management Interface (IPMI) または類似するプロトコルを使用して管理対象ホストで電源管理タスクを実行するには、Satellite Server でベースボード管理コントローラー (BMC) モジュールを有効にする必要があります。

前提条件

手順

  • BMC を有効にするには、以下のコマンドを入力します。

    # satellite-installer --foreman-proxy-bmc "true" \
    --foreman-proxy-bmc-default-provider "freeipmi"

3.8. Satellite Server で DNS、DHCP、および TFTP の設定

Satellite Server で DNS、DHCP、および TFTP サービスを設定するには、お使いの環境に適したオプションで satellite-installer コマンドを使用します。

設定可能な全オプションを表示するには、satellite-installer --scenario satellite --help コマンドを実行します。

設定を変更するには、satellite-installer コマンドを再び実行する必要があります。コマンドは複数回実行でき、実行するたびにすべての設定ファイルが変更された値で更新されます。

前提条件

DNS、DHCP および TFTP サービスを設定する前に、以下の条件を満たしていることを確認する。

  • 以下の情報が利用可能であることを確認する。

    • DHCP IP アドレス範囲
    • DHCP ゲートウェイ IP アドレス
    • DHCP ネームサーバー IP アドレス
    • DNS 情報
    • TFTP サーバー名
  • ネットワークの変更の場合は、可能な限り、IP アドレスの代わりに FQDN を使用します。
  • ネットワーク管理者に連絡して正しい設定が行われていることを確認します。

手順

  • お使いの環境に適したオプションで、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-reverse 2.0.192.in-addr.arpa \
    --foreman-proxy-dhcp true \
    --foreman-proxy-dhcp-managed true \
    --foreman-proxy-dhcp-interface eth0 \
    --foreman-proxy-dhcp-range "192.0.2.100 192.0.2.150" \
    --foreman-proxy-dhcp-gateway 192.0.2.1 \
    --foreman-proxy-dhcp-nameservers 192.0.2.2 \
    --foreman-proxy-tftp true \
    --foreman-proxy-tftp-managed true \
    --foreman-proxy-tftp-servername 192.0.2.3

プロンプトに表示される satellite-installer コマンドの進行状況を監視できます。/var/log/foreman-installer/satellite.log でログを表示できます。/etc/foreman-installer/scenarios.d/satellite-answers.yaml ファイルで、使用されている設定 (admin_password パラメーターなど) を表示できます。

DHCP、DNS および TFTP サービスの情報は、『プロビジョニングガイド』の「ネットワークサービスの設定」セクションを参照してください。

Satellite の DNS、DHCP、および TFTP サービスを無効化し、これらの手動での管理に関する詳細は、「管理対象外ネットワークに対して DNS、DHCP、および TFTP の無効化」を参照してください。

外部サービスの設定に関する詳細は、「外部サービスの設定」を参照してください。

3.9. 管理対象外ネットワークに対して DNS、DHCP、および TFTP の無効化

TFTP、DHCP および DNS サービスを手動で管理する場合には、Satellite がオペレーティングシステム上でこれらのサービスを管理しないようにし、オーケストレーションを無効にして、DHCP および DNS バリデーションエラーを回避する必要があります。ただし、Satellite ではオペレーティングシステムのバックエンドサービスは削除されません。

手順

オペレーティングシステム上で Satellite による DHCP、DNS、および TFTPサービスを管理を回避し、オーケストレーションを無効にするには、以下の手順を実行します。

  1. Satellite Server で以下のコマンドを入力します。

    # satellite-installer --foreman-proxy-dhcp false \
    --foreman-proxy-dns false \
    --foreman-proxy-tftp false
  2. Satellite Web UI で、インフラストラクチャー > Capsule に移動し、サブネットを選択します。
  3. Capsules タブで、DHCP CapsuleTFTP Capsule、および 逆引き DNS Capsule を選択します。
  4. インフラストラクチャー > ドメイン に移動し、ドメインを選択します。
  5. DNS Capsule フィールドの内容を消去します。
  6. オプション: サードパーティーが提供する 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.10. 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 で送信メールの設定

  1. Satellite Web UI で、管理設定 に移動します。
  2. Email タブをクリックして、希望する配信方法に一致する設定オプションを設定します。変更は即座に反映されます。

    1. 以下の例は、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 サーバーのログイン認証情報を指定します。

    2. 以下の例では、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

    3. 以下の例では、sendmail コマンドが配信方法として使用されています。

      表3.3 配信方法に sendmail を使用する例

      名前値例

      配信方法

      Sendmail

      Sendmail の引数

      -i -t -G

      Sendmail の引数 では、sendmail コマンドに渡すオプションを指定します。デフォルト値は、-i -t です。詳細は、sendmail 1 の man ページを参照してください。

  3. 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 に設定します。
  4. Test email をクリックしてユーザーのメールアドレスにテストメッセージを送信し、設定が機能していることを確認します。メッセージの送信に失敗する場合は、Web UI でエラーが表示されます。詳細については、/var/log/foreman/production.log のログを確認してください。
注記

個別ユーザーまたはユーザーグループに対する電子メール通知の設定は、『Red Hat Satellite の管理』の「電子メール通知の設定」を参照してください。

3.11. カスタムの SSL 証明書を使用した Satellite Server の設定

デフォルトでは、Red Hat Satellite 6 は Satellite Server、外部の Capsule Server および全ホストの間で暗号化した通信ができるように、自己署名の SSL 証明書を使用します。Satellite 自己署名の証明書を使用できない場合には、外部の証明局で署名した SSL 証明書を使用するように Satellite Server を設定できます。

カスタムの証明書で Satellite Server を設定するには、以下の手順を実行します。

  1. 「Satellite Server 向けのカスタム SSL 証明書の作成」
  2. 「カスタムの SSL 証明書の Satellite Server へのデプロイ」
  3. 「ホストへの カスタム SSL 証明書のデプロイ」
  4. Satellite Server に外部の Capsule Server を登録した場合には、カスタムの SSL 証明書を使用して設定する必要があります。詳細は、『Capsule Server のインストール』の「カスタム SSL 証明書を使用した Capsule Server の設定」を参照してください。

3.11.1. Satellite Server 向けのカスタム SSL 証明書の作成

この手順を使用して、Satellite Server 用に カスタムの SSL 証明書を作成します。Satellite Server 用のカスタムの SSL 証明書がある場合にはこの手順は省略してください。

カスタム証明書を使用して Satellite を設定する場合には、次の点を考慮してください。

  • SSL 証明書には、Privacy-Enhanced Mail (PEM) エンコードを使用する必要がある。
  • Satellite Server と Capsule Server の両方に、同じ証明書を使用できない。
  • 同じ証明局を使用して Satellite と Capsule の証明書を署名する必要がある。

手順

カスタムの SSL 証明書を作成するには、以下の手順を実行します。

  1. ソースの証明書ファイルすべてを保存するには、root ユーザーだけがアクセスできるディレクトリーを作成します。

    # mkdir /root/satellite_cert
  2. Certificate Signing Request (CSR) を署名する秘密鍵を作成します。

    秘密鍵は暗号化する必要がないことに注意してください。パスワードで保護された秘密鍵を使用する場合は、秘密鍵のパスワードを削除します。

    Satellite Server 向けの秘密鍵がすでにある場合は、この手順を省略します。

    # openssl genrsa -out /root/satellite_cert/satellite_cert_key.pem 4096
  3. 証明書署名要求 (CSR) 用の /root/satellite_cert/openssl.cnf 設定ファイルを作成して、以下のコンテンツを追加します。

    [ req ]
    req_extensions = v3_req
    distinguished_name = req_distinguished_name
    x509_extensions = usr_cert
    prompt = no
    
    [ req_distinguished_name ] 1
    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 2
    
    [ 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 3
    1
    [ req_distinguished_name ] セクションに、貴社の組織の情報を入力します。
    2
    証明書のコモンネーム CN を、Satellite Server の完全修飾ドメイン名 (FQDN) と一致するように設定します。FQDN を確認するには、対象の Satellite Server で hostname -f コマンドを入力します。これは、katello-certs-check コマンドが証明書を正しく検証することを確認するために必要です。
    3
    サブジェクトの別名 (SAN: Subject Alternative Name) DNS.1 を、お使いのサーバーの完全修飾ドメイン名 (FQDN) に一致する用に設定します。
  4. 証明書署名要求 (CSR) を作成します。

    # openssl req -new \
    -key /root/satellite_cert/satellite_cert_key.pem \ 1
    -config /root/satellite_cert/openssl.cnf \ 2
    -out /root/satellite_cert/satellite_cert_csr.pem 3
    1
    秘密鍵へのパス
    2
    設定ファイルへのパス
    3
    生成する CSRへのパス
  5. 証明局に証明書署名要求を送信します。同じ証明局が Satellite Server と Capsule Server の証明書に署名する必要があります。

    要求を送信する場合は、証明書の有効期限を指定してください。証明書要求を送信する方法は異なるため、推奨の方法について認証局にお問い合わせください。要求への応答で、認証局バンドルと署名済み証明書を別々のファイルで受け取ることになります。

3.11.2. カスタムの SSL 証明書の Satellite Server へのデプロイ

この手順を使用して、Satellite Server が、認証局で署名されたカスタムの SSL 署名書を使用するように設定します。katello-certs-check コマンドは、入力した証明書ファイルを検証して、Satellite Server にカスタムの SSL 証明書をデプロイするのに必要なコマンドを返します。

手順

Satellite Server にカスタムの証明書をデプロイするには、以下の手順を実行します。

  1. カスタムの SSL 証明書入力ファイルを検証します。katello-certs-check コマンドが正しく実行されるには、証明書のコモンネーム (CN) が Satellite Server の FQDN と一致する必要があることに注意してください。

    # katello-certs-check \
    -c /root/satellite_cert/satellite_cert.pem \      1
    -k /root/satellite_cert/satellite_cert_key.pem \  2
    -b /root/satellite_cert/ca_cert_bundle.pem        3
    1
    認証局が署名した Satellite Server の証明書ファイルへのパス
    2
    Capsule Server 証明書の署名に使用した秘密鍵へのパス
    3
    認証局バンドルへのパス

    このコマンドに成功すると、2 つの satellite-installer コマンドが返されます。1 つは、Satellite Server に証明書をデプロイするのに使用する必要があります。

    katello-certs-check の出力例

    Validation succeeded.
    
    To install the Red Hat Satellite Server with the custom certificates, run:
    
      satellite-installer --scenario satellite \
        --certs-server-cert "/root/satellite_cert/satellite_cert.pem" \
        --certs-server-key "/root/satellite_cert/satellite_cert_key.pem" \
        --certs-server-ca-cert "/root/satellite_cert/ca_cert_bundle.pem"
    
    To update the certificates on a currently running Red Hat Satellite installation, run:
    
      satellite-installer --scenario satellite \
        --certs-server-cert "/root/satellite_cert/satellite_cert.pem" \
        --certs-server-key "/root/satellite_cert/satellite_cert_key.pem" \
        --certs-server-ca-cert "/root/satellite_cert/ca_cert_bundle.pem" \
        --certs-update-server --certs-update-server-ca

  2. 要件に合わせて、katello-certs-check コマンドの出力から、新しい Satellite にデプロイする satellite-installer コマンドか、現在実行中の Satellite の証明書を更新するコマンドを入力します。

    重要

    証明書のデプロイ後に、証明書のアーカイブファイルを削除しないでください。Satellite Server のアップグレード時などに必要です。

  3. Satellite Server にネットワークでアクセスできるコンピューターで、この URL ( https://satellite.example.com) に移動します。
  4. ブラウザーで、証明書の詳細を表示して、デプロイした証明書を確認します。

3.11.3. ホストへの カスタム SSL 証明書のデプロイ

Satellite Server がカスタムの SSL 証明書を使用する用に設定した後に、Satellite Server に登録されている全ホストに katello-ca-consumer パッケージもインストールする必要があります。

BZ#1683835 が解決されるまで、katello-ca-consumer パッケージはアップグレードできません。以前のパッケージを削除して、新しいパッケージをインストールする必要があります。katello-ca-consumer パッケージをアップグレードすると、subscription.rhsm.redhat.combaseurl 設定が元に戻るため、アップグレードに失敗します。

手順

各ホストで、以下の手順を実行し、katello-ca-consumer パッケージをインストールします。

  1. ホストで現行の katello-ca-consumer パッケージを削除します。

    # yum remove 'katello-ca-consumer*'
  2. ホストに katello-ca-consumer パッケージをインストールします。

    # yum localinstall \
    http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm

3.12. Satellite での外部データベースの使用

Red Hat Satellite のインストールプロセスの一部として、satellite-installer コマンドは MongoDB および PostgreSQL のデータベースを Satellite と同じサーバー上にインストールします。Satellite のデプロイメントによっては、外部データベースがサーバーの負荷を軽減する場合もあります。ただし、Satellite Server のパフォーマンスに影響を与える可能性のある要素は多数あります。外部データベースに移動すると、固有の問題に対応できない可能性があります。

外部データベースに MongoDB と PostgreSQL のどちらのデータベースが使用できるかについては、要件によって異なります。

Red Hat では、外部データベースのメンテナンスのサポートやそのためのツールは提供していません。これにはバックアップ、アップグレード、データベースのチューニングが含まれます。外部データベースを使用しているお客様は、外部データベースをサポート、メンテナンスする独自のデータベース管理者が必要になります。

お使いの Satellite デプロイメントで外部データベースを必要とする場合は、以下の情報を使用して、Satellite から外部データベースに参照するように設定します。

FIPS 関連の制限

BZ#1743706 が解決されるまで、FIPS モードの Satellite で外部の MongoDB は使用できません。

3.12.1. 外部データベースとして MongoDB を使用する際の注意点

Pulp は MongoDB データベースを使用します。MongoDB を外部データベースとして使用する場合は、以下の情報を参照してお使いの Satellite 設定にこのオプションが適しているかどうかを判定してください。Satellite は、MongoDB バージョン 3.4 をサポートします。

外部 MongoDB の利点

  • Satellite 上の空きメモリーと空き CPU が増えます。
  • Satellite 操作にマイナスの影響をもたらすことなく MongoDB サーバーのシステムを調整する柔軟性が得られます。

外部 MongoDB のマイナス点

  • デプロイメントの複雑性が増し、問題解決がより困難になります。
  • 外部 MongoDB サーバーの場合は、パッチおよびメンテナンス対象に新たなシステムが加わることになります。
  • Satellite または Mongo データベースサーバーのいずれかにハードウェアまたはストレージ障害が発生すると、Satellite が機能しなくなります。
  • Satellite と外部データベースサーバーの間でレイテンシーが発生すると、パフォーマンスに影響が出ます。

お使いの Mongo データベースが遅いと感じられる場合は、Red Hat サポートチームと協力して問題解決に当たることができます。Satellite 6 での設定問題や既存のパフォーマンス問題については、外部データベースサーバーに移行したとしても解決が期待できないものもあります。Red Hat サポートチームは既知の問題を調査するほか、Satellite エンジニアリングチームとも協力して根本原因を見つけ出します。

3.12.2. 外部データベースとして PostgreSQL を使用する際の注意点

Foreman、Katello、および Candlepin は PostgreSQL データベースを使用します。PostgreSQL を外部データベースとして使用する場合は、以下の情報を参照してお使いの Satellite 設定にこのオプションが適しているかどうかを判定してください。Satellite は PostgreSQL バージョン 9.2 をサポートします。

外部 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 サポートチームまでお問い合わせください。

3.12.3. 概要

Satellite 用にリモートデータベースを作成して使用するには、以下の手順を実行します。

  1. 「ストレージの要件とガイドライン」を使用して、外部データベースのストレージ要件をプランニングします。
  2. PostgreSQL で Foreman および Candlepin 用のデータベースを準備し、Foreman と Candlepin の所有権を持つ専用ユーザーを作成します。
  3. pulp_database を所有している pulp ユーザーで MongoDB を準備します。
  4. 最初の手順に従い、Satellite をインストールし、データベースが Satellite からアクセスできることを確認します。
  5. 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 サブスクリプションもアタッチする必要があります。

  1. Satellite Infrastructure サブスクリプションのアタッチ」の説明を使用して、サーバーに Satellite サブスクリプションをアタッチします。
  2. 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.12.4. MongoDB のインストール

インストール可能な MongoDB は、内部データベースのインストール中に satellite-installer ツールでインストールされたものと同じバージョンの MongoDB のみになります。MongoDB はサポート対象のバージョンであれば、Red Hat Software Collections (RHSCL) リポジトリーからまたは外部ソースからインストールすることが可能です。Satellite は MongoDB バージョン 3.4 をサポートしています。

  1. MongoDB をインストールするには、以下のコマンドを入力します。

    # yum install rh-mongodb34 rh-mongodb34-syspaths
  2. rh-mongodb34 サービスを起動して有効にします。

    # systemctl start rh-mongodb34-mongod
    # systemctl enable rh-mongodb34-mongod
  3. 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'}]})"
  4. /etc/opt/rh/rh-mongodb34/mongod.conf ファイルでバインド IP を指定します。

    bindIp: your_mongodb_server_bind_IP,::1
  5. /etc/opt/rh/rh-mongodb34/mongod.conf ファイルを編集して security セクションの認証を有効にします。

    security:
      authorization: enabled
  6. rh-mongodb34-mongod サービスを再起動します。

    # systemctl restart rh-mongodb34-mongod
  7. MongoDB にポート 27017 を開きます。

    # firewall-cmd --add-port=27017/tcp
    # firewall-cmd --runtime-to-permanent
  8. 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.12.5. PostgreSQL のインストール

インストール可能な PostgreSQL は、内部データベースのインストール中に satellite-installer ツールでインストールされたものと同じバージョンの PostgreSQL のみになります。PostgreSQL はサポート対象のバージョンであれば、Red Hat Enteprise Linux Server 7 リポジトリーからまたは外部ソースからインストールすることが可能です。Satellite は PostgreSQL バージョン 9.2 をサポートしています。

  1. PostgreSQL をインストールするには、以下のコマンドを入力します。

    # yum install postgresql-server
  2. PostgreSQL サービスを初期化して起動し、有効にするには、以下のコマンドを実行します。

    # postgresql-setup initdb
    # systemctl start postgresql
    # systemctl enable postgresql
  3. /var/lib/pgsql/data/postgresql.conf ファイルを編集します。

    # vi /var/lib/pgsql/data/postgresql.conf
  4. # を削除して、着信接続をリッスンするようにします。

    listen_addresses = '*'
  5. /var/lib/pgsql/data/pg_hba.conf ファイルを編集します。

    # vi /var/lib/pgsql/data/pg_hba.conf
  6. 以下の行を追加します。

      host  all   all   satellite_server_ip/24   md5
  7. PostgreSQL サービスを再起動して、変更を適用します。

    # systemctl restart postgresql
  8. 外部 PostgreSQL サーバーで postgresql ポートを開きます。

    # firewall-cmd --add-service=postgresql
    # firewall-cmd --runtime-to-permanent
  9. postgres ユーザーに切り替え、PostgreSQL クライアントを起動します。

    $ su - postgres -c psql
  10. 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;
  11. postgres ユーザーをログアウトします。

    # \q
  12. 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"
  13. 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

データベースのステータスをクエリーします。たとえば、以下のコマンドに --onlypostgresql または rh-mongodb34-mongod を追加して実行します。

PostgreSQL の場合は、以下のコマンドを実行します。

# satellite-maintain service status --only postgresql

MongoDB の場合は、以下のコマンドを実行します。

# satellite-maintain service status --only rh-mongodb34-mongod

3.13. mongod へのアクセスの制限

データ損失の危険を減らすために、MongoDB データベースデーモン mongod へのアクセスは apache ユーザーと root ユーザーにだけ設定する必要があります。

ご使用の Satellite Server の mongod へのアクセスを制限するには、ファイアウォール構成を更新する必要があります。

手順

  1. 以下のコマンドを入力して、ファイアウォール構成を更新します。

    # 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
  2. 変更を永続化します。

    # firewall-cmd --runtime-to-permanent

3.14. 定義済みプロファイルを使用した Satellite Server の調整

お使いの Satellite デプロイメントに 5000 台を超えるホストが含まれる場合には、事前定義したチューニング付プロファイルを使用して、Satellite Server のパフォーマンスを向上できます。Satellite が管理するホスト数と利用可能なハードウェアリソースに合わせて、プロファイルを 1 つ選択します。チューニングプロファイルは、satellite-support GitHub repository から入手できます。

MEDIUM

管理対象ホスト数: 5001-10000

RAM: 32G

CPU コア数: 8

LARGE

管理対象ホスト数: 10001-20000

RAM: 64G

CPU コア数: 16

X-LARGE

管理対象ホスト数: 20001-60000

RAM: 128G

CPU コア数: 32

2X-LARGE

管理対象ホスト数: 60000+

RAM: 256G

CPU コア数: 48+

手順

お使いの Satellite デプロイメントのチューニングプロファイルを設定するには、以下の手順を実行します。

  1. Satellite Server で /etc/foreman-installer/custom-hiera.yaml ファイルを custom-hiera.original にバックアップします。

    # mv /etc/foreman-installer/custom-hiera.yaml \
    /etc/foreman-installer/custom-hiera.original
  2. ブラウザーで satellite-support GitHub リポジトリーチューニングプロファイル に移動して、お使いの Satellite デプロイメントに一致するプロファイルをクリックします。
  3. Raw ボタンをクリックし、URL をメモして、次のステップでプロファイルをダウンロードします。
  4. たとえば、Raw 形式のプロファイルの URL を指定して curl で、チューニングプロファイルをダウンロードします。

    # curl -O https://raw.githubusercontent.com/RedHatSatellite/satellite-support/master/tuning-profiles/custom-hiera-large-64G.yaml
  5. お使いの Satellite デプロイメントに一致するチューニングプロファイルを /etc/foreman-installer/custom-hiera.yaml にコピーします。

    # cp custom-hiera-large-64G.yaml /etc/foreman-installer/custom-hiera.yaml
  6. オプション: カスタムの設定を custom-hiera.yaml に追加した場合には、バックアップしたファイルから新しい custom-hiera.yaml ファイルにコピーします。
  7. オプション: Satellite をアップグレードした場合には、バックアップした /etc/foreman-installer/custom-hiera.original ファイルで以下の形式の文字列を検索して、新しい /etc/foreman-installer/custom-hiera.yaml ファイルにコピーします。

    # Added by foreman-installer during upgrade, run the installer with --upgrade-mongo-storage to upgrade to WiredTiger.
    mongodb::server::storage_engine: 'mmapv1'
  8. 引数なしで satellite-installer コマンドを入力して、設定を適用します。

    # satellite-installer