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

3.1. コンテンツをローカル CDN サーバーと同期するための Satellite の設定

オフライン環境で、最新のセキュリティー更新、エラータ、パッケージをシステムにプロビジョニングするために必要なコンテンツが Satellite Server に含まれていることを確認する必要があります。これには、Red Hat カスタマーポータルからコンテンツの ISO イメージをダウンロードして、ローカルの CDN サーバーにインポートする手順を実行してください。Satellite Server のベースオペレーティングシステムか、HTTP 経由で Satellite にアクセス可能なシステムで、ローカル CDN サーバーをホストできます。次に、Satellite Server がローカルの CDN サーバーとコンテンツを同期するように設定する必要があります。

手順

  1. Red Hat カスタマーポータル https://access.redhat.com へ移動し、ログインします。
  2. 画面の左上で、ダウンロード をクリックし、Red Hat Satellite を選択します。
  3. コンテンツ ISO タブをクリックします。このページには、サブスクリプションで利用できるすべての製品が一覧表示されます。
  4. Red Hat Enterprise Linux 7 Server (x86_64) などの製品名のリンクをクリックして、ISO イメージをダウンロードします。
  5. すべての Satellite コンテンツ ISO イメージを、ローカル CDN サーバーとして使用するシステムにコピーします。たとえば、Satellite Server の /root/isos ディレクトリーなどです。

    Satellite がインストールされているシステムにコンテンツを保存する必要はない点にご留意ください。CDN は、HTTP 経由で Satellite Server にアクセスできる限り、同じオフラインネットワーク内の別のシステムでホストできます。

  6. ローカル CDN サーバーとして使用するシステムで、httpd 経由でアクセス可能なローカルディレクトリーを作成します (例: /var/www/html/pub/sat-import/)。

    # mkdir -p /var/www/html/pub/sat-import/
  7. マウントポイントを作成し、その場所に ISO イメージを一時的にマウントします。

    # mkdir /mnt/iso
    # mount -o loop /root/isos/first_iso /mnt/iso
  8. 最初の ISO イメージのコンテンツをローカルディレクトリーに再帰的にコピーします。

    # cp -ruv /mnt/iso/* /var/www/html/pub/sat-import/
  9. マウントされたバイナリー DVD ISO イメージを使用する予定がない場合は、マウントポイントをアンマウントして削除します。

    # umount /mnt/iso
    # rmdir /mnt/iso
  10. 各 ISO で上記の作業を繰り返して、コンテンツ ISO イメージからすべてのデータを /var/www/html/pub/sat-import/ にコピーします。
  11. ディレクトリーに正しい SELinux コンテキストが設定されていることを確認します。

    # restorecon -rv /var/www/html/pub/sat-import/
  12. Satellite Web UI で、コンテンツ > サブスクリプション に移動します。
  13. マニフェストの管理 をクリックします。
  14. 以下の例のように、ローカルの CDN サーバーとして使用するシステムのホスト名に、新規作成したディレクトリーを指定して参照するように、Red Hat CDN URL フィールドを編集します。

    http://server.example.com/pub/sat-import/

  15. 更新 をクリックして、マニフェストを Satellite にアップロードします。

3.2. キックスタートリポジトリーのインポート

キックスタートリポジトリーは、コンテンツ ISO イメージでは提供されません。オフラインの Satellite でキックスタートリポジトリーを使用するには、使用する Red Hat Enterprise Linux のバージョンのバイナリー DVD ISO ファイルをダウンロードし、キックスタートファイルを Satellite にコピーする必要があります。

手順

  1. Red Hat カスタマーポータル https://access.redhat.com/ へ移動し、ログインします。
  2. ウィンドウの右上隅で ダウンロード をクリックします。
  3. 使用する Red Hat Enterprise Linux のバージョンを探してクリックします (たとえば、Red Hat Enterprise Linux 8 など)。
  4. Red Hat Enterprise Linux のダウンロードウィンドウで、ISO イメージのバイナリー DVD バージョン (たとえば、Red Hat Enterprise Linux 8.1 バイナリー DVD) を見つけて、今すぐダウンロード をクリックします。
  5. ダウンロードが完了したら、ISO イメージをSatellite Server にコピーします。
  6. Satellite Server で、マウントポイントを作成し、その場所に ISO イメージを一時的にマウントします。

    # mkdir /mnt/iso
    # mount -o loop rhel-8.1-x86_64-dvd.iso /mnt/iso
  7. AppStream および BaseOS のキックスタートディレクトリーを作成します。

    # mkdir /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart
    
    # mkdir /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart

    Red Hat Enterprise Linux 7 を使用する場合は、1 つのディレクトリーのみで、以下のすべての手順を作成して完了する必要があることに注意してください。/var/www/html/pub/sat-import/content/dist/rhel/server/7/7.7/x86_64/kickstart/

  8. /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/appstream/listing および /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/baseos/listing のリストファイルに対して、kickstart を追加して改行します。

    kickstart
  9. /var/www/html/pub/sat-import/content/dist/rhel8/listing のリストファイルに対して、使用するオペレーティングシステムの ISO のバージョン番号を追加して改行します。たとえば、RHEL 8.1 バイナリー ISO の場合、8.1 を追加して改行します。

    8.1
  10. ISO イメージから kickstart ファイルをコピーします。

    # cp -a /mnt/iso/AppStream/* \
    /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart
    
    # cp -a /mnt/iso/BaseOS/* /mnt/iso/images/ \
    /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart

    BaseOS の場合は、/mnt/iso/images/ ディレクトリーのコンテンツもコピーする必要があることに注意してください。

  11. ISO イメージから .treeinfo ファイルをコピーします。

    # cp /mnt/iso/.treeinfo \
    /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart/treeinfo
    
    # cp /mnt/iso/.treeinfo \
    /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart/treeinfo
  12. /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart/treeinfo ファイルを開いて編集します。
  13. [general] セクションで、以下の変更を加えます。

    • packagedir = AppStream/Packagespackagedir = Packages に変更します。
    • repository = AppStreamrepository = . に変更します。
    • variant = AppStreamvariant = BaseOS に変更します。
    • variants = AppStream,BaseOSvariants = BaseOS に変更します。
  14. [tree] セクションで、variants = AppStream,BaseOSvariants = BaseOS に変更します。
  15. [variant-BaseOS] セクションで、以下の変更を加えます。

    • packages = BaseOS/Packagespackages = Packages に変更します。
    • repository = BaseOSrepository = . に変更します。
  16. [media] および [variant-AppStream] のセクションを削除します。
  17. ファイルを保存して閉じます。
  18. /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart/treeinfo ファイルが以下の形式であることを確認します。

    [checksums]
    images/efiboot.img = sha256:9ad9beee4c906cd05d227a1be7a499c8d2f20b3891c79831325844c845262bb6
    images/install.img = sha256:e246bf4aedfff3bb54ae9012f959597cdab7387aadb3a504f841bdc2c35fe75e
    images/pxeboot/initrd.img = sha256:a66e3c158f02840b19c372136a522177a2ab4bd91cb7269fb5bfdaaf7452efef
    images/pxeboot/vmlinuz = sha256:789028335b64ddad343f61f2abfdc9819ed8e9dfad4df43a2694c0a0ba780d16
    
    [general]
    ; WARNING.0 = This section provides compatibility with pre-productmd treeinfos.
    ; WARNING.1 = Read productmd documentation for details about new format.
    arch = x86_64
    family = Red Hat Enterprise Linux
    name = Red Hat Enterprise Linux 8.1.0
    packagedir = Packages
    platforms = x86_64,xen
    repository = .
    timestamp = 1571146127
    variant = BaseOS
    variants = BaseOS
    version = 8.1.0
    
    [header]
    type = productmd.treeinfo
    version = 1.2
    
    [images-x86_64]
    efiboot.img = images/efiboot.img
    initrd = images/pxeboot/initrd.img
    kernel = images/pxeboot/vmlinuz
    
    [images-xen]
    initrd = images/pxeboot/initrd.img
    kernel = images/pxeboot/vmlinuz
    
    [release]
    name = Red Hat Enterprise Linux
    short = RHEL
    version = 8.1.0
    
    [stage2]
    mainimage = images/install.img
    
    [tree]
    arch = x86_64
    build_timestamp = 1571146127
    platforms = x86_64,xen
    variants = BaseOS
    
    [variant-BaseOS]
    id = BaseOS
    name = BaseOS
    packages = Packages
    repository = .
    type = variant
    uid = BaseOS
  19. /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart/treeinfo ファイルを開いて編集します。
  20. [general] セクションで、以下の変更を加えます。

    • packagedir = AppStream/Packagespackagedir = Packages に変更します。
    • repository = AppStreamrepository = . に変更します。
    • variants = AppStream,BaseOSvariants = AppStream に変更します。
  21. [tree] セクションで、variants = AppStream,BaseOSvariants = AppStream に変更します。
  22. [variant-AppStream] セクションで、以下の変更を加えます。

    • packages = AppStream/Packagespackages = Packages に変更します。
    • repository = AppStreamrepository = . に変更します。
  23. ファイルから次のセクションを削除します: [checksums][images-x86_64][images-xen][media][stage2][variant-BaseOS]
  24. ファイルを保存して閉じます。
  25. /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart/treeinfo ファイルが以下の形式であることを確認します。

    [general]
    ; WARNING.0 = This section provides compatibility with pre-productmd treeinfos.
    ; WARNING.1 = Read productmd documentation for details about new format.
    arch = x86_64
    family = Red Hat Enterprise Linux
    name = Red Hat Enterprise Linux 8.1.0
    packagedir = Packages
    platforms = x86_64,xen
    repository = .
    timestamp = 1571146127
    variant = AppStream
    variants = AppStream
    version = 8.1.0
    
    [header]
    type = productmd.treeinfo
    version = 1.2
    
    [release]
    name = Red Hat Enterprise Linux
    short = RHEL
    version = 8.1.0
    
    [tree]
    arch = x86_64
    build_timestamp = 1571146127
    platforms = x86_64,xen
    variants = AppStream
    
    [variant-AppStream]
    id = AppStream
    name = AppStream
    packages = Packages
    repository = .
    type = variant
    uid = AppStream
  26. マウントされたバイナリー DVD ISO イメージを使用する予定がない場合は、ディレクトリーをアンマウントして削除します。

    # umount /mnt/iso
    # rmdir /mnt/iso
  27. Satellite Web UI で、Kickstart リポジトリーを有効にします。

3.3. Red Hat CDN からコンテンツをダウンロードするために Satellite を戻す

お使いの環境がオフラインからオンラインに変更された場合は、Red Hat CDN から直接コンテンツをダウンロードするようにオフラインの Satellite を再設定することができます。

手順

  1. Satellite Web UI で、コンテンツ > サブスクリプション に移動します。
  2. マニフェストの管理 をクリックします。
  3. Red Hat CDN URL フィールドを編集して、Red Hat CDN URL をポイントします。

    https://cdn.redhat.com

  4. 保存 をクリックします。

これで Satellite Server は、次にリポジトリーを同期するときに CDN からコンテンツをダウンロードするように設定されました。

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

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

前提条件

  • Satellite Server に必要なコンテンツの ISO イメージすべてをインポートするようにしてください。

手順

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.5. 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.6. 管理対象ホスト上での電源管理の有効化

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

前提条件

手順

  • 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-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.8. 管理対象外ネットワークに対して 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.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 で送信メールの設定

  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.10. カスタムの 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.10.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.10.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.10.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.11. 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.11.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.11.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.11.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.11.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.11.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.12. 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.13. 定義済みプロファイルを使用した 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