第4章 アップグレード後のタスク

本セクションで紹介する手順の一部はオプションです。お使いのインストールに関連する手順のみを選択できます。

PXE ベースの検出プロセスを使用する場合には、Satellite の ホスト > 検出されたホスト ページに表示させるホストで、Satellite または Capsule Server 上で Discovery アップグレードの手順を実行する必要があります。

4.1. Discovery のアップグレード

このセクションでは、PXE ブートを使用して Satellite Server に登録するホストに渡した PXELinux テンプレートとブートイメージをアップデートする方法を説明します。

Satellite 6.4 以降、プロビジョニングテンプレートには別途サブネットが関連付けられるので、対象のサブネットに対して TFTP Capsule を使用するように初期設定しないようにしてください。アップグレード後にサブネットを作成する場合には、特に Satellite また Capsule が Discovery テンプレートにプロキシーサービスを提供できるようにしてから、テンプレート Capsule を使用するように、検出されたホストで全ホストを設定する必要があります。

アップグレード中は、TFTP プロキシーが設定された各サブネットが有効化されている場合には、テンプレート Capsule を TFTP Capsule と同じに設定してください。アップグレード後には、すべてのサブネットでこれが正しく設定されていることを確認してください。

ホストで PXE ブートを使用しない場合には、Satellite に新規ホストを検出させるために、これらの手順は、必要ありません。

4.1.1. Satellite Server での Discovery のアップグレード

  1. Satellite Web UI で Discovery テンプレートをアップデートします。

    1. ホスト > プロビジョニングテンプレート に移動します。
    2. PXELinux global default 行で クローン をクリックします。
    3. 名前 フィールドに、テンプレートの新しい名前を入力します (例: ACME PXE global default)。
    4. テンプレートエディターフィールドで、ONTIMEOUT local 行を ONTIMEOUT discovery に変更し、送信 をクリックします。
    5. 管理 > 設定 に移動します。
    6. Global default PXELinux template をクリックします。
    7. 新しく作成したテンプレートの名前を選択し、チェックボタンをクリックします。
    8. ホスト > プロビジョニングテンプレート に移動します。
    9. PXE デフォルトのビルド をクリックして、OK をクリックします。
  2. Satellite Web UI で 設定 > 検出ルール に移動し、選択した組織および場所を検出ルールに関連付けます。

4.1.2. Capsule Server での Discovery のアップグレード

  1. Satellite Server で、Foreman Discovery パッケージが最新であることを確認します。

    # yum upgrade tfm-rubygem-foreman_discovery
  2. 以前の手順でアップデートが行われた場合には、satellite-maintain サービスを再起動します。

    # satellite-maintain service restart
  3. 検出されたホストでプロビジョニングネットワークに接続した Satellite Capsule の Discovery イメージ、または検出されたホストに TFTP サービスを提供する Satellite Capsule の Discovery イメージをアップグレードします。

    # yum upgrade foreman-discovery-image
  4. 同じインスタンスに、Proxy サービスを提供するパッケージをインストールして、foreman-proxy サービスを再起動します。

    # yum install rubygem-smart_proxy_discovery
    # service foreman-proxy restart
  5. Satellite Web UI で、インフラストラクチャー > Capsule に移動して、関連する Capsule の機能コラムに Discovery が表示されていることを確認します。必要に応じて、アクション ドロップダウンメニューから リフレッシュ を選択します。
  6. インフラストラクチャー > サブネット に移動し、検出を使用する各サブネットで以下を行います。

    1. サブネット名をクリックします。
    2. Capsule タブで、上で設定した Capsule に Discovery Capsule が設定されているのを確認します。

4.1.3. サブネットにテンプレート Capsule があることの確認

検出されたホストが含まれる全サブネットに、テンプレート Capsule が設定されていることを確認します。

  1. Satellite Web UI で、インフラストラクチャー > Capsule に移動します。
  2. 確認するサブネットを選択します。
  3. Capsule タブで、テンプレート Capsule が、このサブネットに設定されていることを確認します。

テンプレート Capsule を使用したサブネットの設定に関する詳細は、『Red Hat Satellite ホスト管理』ガイドの「Discovery サブネットの設定」を参照してください。

4.2. Ansible Playbook をアップデートして、foreman_params を削除します

Satellite の以前のバージョンでは、Ansible Playbook はハッシュ foreman_params を使用して、パラメーターを取得しました。以下に例を示します。

- hosts: all
  tasks:
    - name: Print Remote Execution SSH keys
      debug:
        var: foreman_params['remote_execution_ssh_keys']

これは、ユーザーが foreman_params ハッシュを使用するために、すべての Ansible Playbook をアップデートする必要があったため、Ansible Playbook をインポートした時に問題を引き起こしました。Satellite 6.6 では、Ansible 変数の機能が強化され、foreman_params ハッシュが削除されました。

Satellite 6.6 にアップグレードしたら、Ansible Playbook をアップデートして foreman_params ハッシュを削除する必要があります。

Ansible Playbook が、以下の方法で変数を参照していることを確認します。

- hosts: all
  tasks:
    - name: Print Remote Execution SSH keys
      debug:
        var: remote_execution_ssh_keys

4.3. virt-who のアップグレード

Satellite Server または Capsule Server に virt-who がインストールされている場合は、Satellite Server または Capsule Server のアップグレード時に一緒にアップグレードされるため、追加の作業は必要ありません。virt-who を他の場所にインストールしている場合は、手動でアップグレードする必要があります。

作業開始前の準備

Satellite Server または Capsule Server に登録しているホストに virt-who がインストールされている場合は、最初にホストを、Satellite Tools リポジトリーで利用可能な最新パッケージにアップグレードします。ホストのアップグレードに関する詳細は、「Satellite クライアントのアップグレード」 を参照してください。

virt-who の手動アップグレード

  1. virt-who をアップグレードします。

    # yum upgrade virt-who
  2. virt-who サービスを再起動して、新しいバージョンを有効にします。

    # systemctl restart virt-who.service

4.4. 以前のバージョンの Satellite Tools リポジトリーの削除

Satellite 6.6 へのアップグレードが完了したら、コンテンツビューから Red Hat Satellite Tools 6.5 リポジトリーを削除して、無効にすることができます。

バージョン 6.5 の Satellite Tools リポジトリーを無効にします。

  1. Satellite Web UI で、コンテンツ > Red Hat サブスクリプション に移動します。
  2. 有効されたリポジトリー エリアで、Red Hat Satellite Tools 6.5 for RHEL 7 Server RPMs x86_64 を探し出します。
  3. 右側の 無効化 アイコンをクリックします。

リポジトリーがまだコンテンツビューに含まれている場合には、無効にできません。スケジュールされているタスクにより、無効にされたリポジトリーからパッケージが自動的に削除されます。

4.5. MongoDB ストレージエンジンのアップグレード

アップグレードを完了したら、オプションで MongoDB ストレージエンジンを WiredTiger にアップグレードできます。すでに WiredTiger を使用する場合は、アップグレード後にこの手順を実行する必要はありません。WiredTiger の使用を希望する場合は、Satellite Server と全 Capsule Server で、以下の手順を繰り返し実行する必要があります。WiredTiger ストレージエンジンに関する詳細は、MongoDB マニュアルWiredTiger Storage Engine を参照してください。

前提条件

このストレージエンジンをアップグレードする前に、次の条件が満たされていることを確認します。

  • MongoDB ストレージのバックアップが作成されている。
  • /var/tmp ディレクトリーに最低でも /var/lib/mongodb ディレクトリーの 2 倍の容量がある。
  • オプション: トラフィックの多い Satellite 環境では、MongoDB 修復を使用してディスク領域を確保する。詳細は、KCS アーティクル「How to compact MongoDB files and/or reclaim disk space in "/var/lib/mongodb" in Satellite 6?を参照してください。
  • オプション: トラフィックの多い Satellite 環境では、MongoDB コンパクトを使用して、ディスク領域を確保する。詳細は、MongoDB マニュアルの compact を参照してください。
  • オプション: 現在使用中の MongoDB のバージョンを確認するには、以下のコマンドを入力する。

    # mongo pulp_database --eval "db.serverStatus().storageEngine"

手順

MongoDB ストレージエンジンをアップグレードするには、Satellite Server と全 Capsule Server で以下のコマンドを入力します。

# satellite-installer --upgrade-mongo-storage-engine

4.6. アップグレード後の PostgreSQL 領域の確保

アップグレードが完了したら、Satellite Server で PostgreSQL の完全なデータベース Vacuum を実行して、移行先のデータベースの領域を確保できます。

手順

Satellite Server で、PostgreSQL データベースの領域を確保するには、以下の手順を実行します。

  1. 以下のコマンドを入力して、postgresql サービス以外の全サービスを停止します。

    # satellite-maintain service stop --exclude postgresql
  2. 以下のコマンドを入力して、postgres ユーザーに切り替えてデータベースの領域を確保します。

    # su - postgres -c 'vacuumdb --full --dbname=foreman'
  3. Vacuum が完了したら、以下のコマンドを入力して他のサービスを開始します。

    # satellite-maintain service start

4.7. テンプレート、パラメーター、ルックアップキーおよび値のアップデート

アップグレードプロセスで、Satellite は Satellite 6.6 で非推奨となったマクロの場所を特定し、全テンプレート、パラメーター、ルックアップキーおよび値の以前の構文を新しい構文に変換します。このプロセスでは、以下のような単純なテキスト置換を使用します。

@host.params['parameter1'] -> host_param('parameter1')
@host.param_true?('parameter1') -> host_param_true?('parameter1')
@host.param_false?('parameter1') -> host_param_false?('parameter1')
@host.info['parameters'] -> host_enc['parameters']

このテキスト置換で、ファイルの変数を破損したり、省略したりしないように、以前の構文の全テンプレート、パラメーター、ルックアップキーおよび値すべてを確認して、手動で置き換えます。

以下のエラーは、アップグレード後にファイル内に以前の構文が残っていることが原因で発生します。

 undefined method '#params' for Host::Managed::Jail

クローンされたテンプレートの確認

Satellite で複製されたテンプレートを使用する場合、複製されたテンプレートが Satellite の元のテンプレートの最新バージョンと異なるかどうかを確認します。同じテンプレートの構文は、Satellite のバージョンによって異なる場合があります。複製されたテンプレートに古い構文が含まれている場合は、テンプレートの最新バージョンに一致するように構文をアップデートします。