5.2. アンダークラウドでの Leapp アップグレードの実施

Leapp ユーティリティーをインストールして実行し、オペレーティングシステムを Red Hat Enterprise Linux (RHEL) 8 にアップグレードします。

前提条件

手順

  1. アンダークラウドに stack ユーザーとしてログインします。
  2. Leapp ユーティリティーと jq をインストールします。

    $ sudo yum install leapp
    $ sudo yum install jq
  3. ナレッジベースのアーティクル RHEL 7 から RHEL 8 へのインプレースアップグレード時に Leapp ユーティリティーで必要なデータ に添付されている追加の必須データファイル (RPM パッケージの変更および RPM リポジトリーマッピング) をダウンロードし、それらのファイルを /etc/leapp/files/ ディレクトリーに置きます。
  4. Red Hat サブスクリプションを更新します。

    • アンダークラウドの登録に Red Hat カスタマーポータルを使用している場合、現在のサブスクリプションをリフレッシュし、Red Hat Enterprise Linux 8.4 コンテンツへのアクセス権限を取得します。

      $ sudo subscription-manager refresh
    • アンダークラウドの登録に Red Hat Satellite Server を使用している場合は、アンダークラウドを Red Hat OpenStack Platform (RHOSP) 16.2 のアクティベーションキーに関連付けられたコンテンツビューに再登録します。

      $ sudo subscription-manager register --force --org ORG --activationkey ACTIVATION_KEY
      注記

      Red Hat OpenStack Platform 16.2 用に作成するコンテンツビューには、Red Hat Enterprise Linux 8.4 のコンテンツが含まれている必要があります。

  5. Red Hat OpenStack Platform 16.2 では、新しいバージョンの Open vSwitch が使用されます。to_remove および to_install トランザクションファイルにより、Open vSwitch のバージョンを置き換えます。

    $ echo 'openvswitch2.11' | sudo tee -a /etc/leapp/transaction/to_remove
    $ echo 'openvswitch2.15' | sudo tee -a /etc/leapp/transaction/to_install
  6. to_keep トランザクションファイルを使用して、アップグレードプロセス中に Red Hat Ceph Storage 3 バージョンの ceph-ansible を維持します。

    $ echo 'ceph-ansible' | sudo tee -a /etc/leapp/transaction/to_keep
  7. RHEL 8 ではサポートされなくなったカーネルモジュールを調整します。

    $ if [ -f /usr/share/leapp-repository/repositories/system_upgrade/el7toel8/actors/kernel/checkkerneldrivers/files/removed_drivers.txt ]; then
        for module in pata_acpi floppy; do
            sudo sed -i "/^${module}$/d" /usr/share/leapp-repository/repositories/system_upgrade/el7toel8/actors/kernel/checkkerneldrivers/files/removed_drivers.txt
        done
    else
        for module in pata_acpi floppy; do
            jq ". | del(.data[] | select(.driver_name == \"${module}\"))" /etc/leapp/files/device_driver_deprecation_data.json | sudo tee /etc/leapp/files/device_driver_deprecation_data.json_modified
            mv /etc/leapp/files/device_driver_deprecation_data.json_modified /etc/leapp/files/device_driver_deprecation_data.json
        done
    fi
  8. pam_pkcs11 モジュールを削除します。

    $ sudo leapp answer --add --section remove_pam_pkcs11_module_check.confirm=True
  9. (オプション) TLS-Everywhere アーキテクチャーで環境がデプロイされ、システムでの認証を設定するのに非推奨の authconfig ユーティリティーが使用される場合は、authselect ユーティリティーを使用して RHEL 8 システムを設定します。

    $ sudo leapp answer --add --section authselect_check.confirm=True

    Leapp によるアップグレードプロセス時の認証設定の詳細は、Upgrading from RHEL 7 to RHEL 8Known issues を参照してください。

  10. LEAPP_DEVEL_TARGET_RELEASE および LEAPP_UNSUPPORTED 環境変数を設定して、アップグレードする RHEL 8 マイナーバージョンを指定します。RHOSP 16.2 では、RHEL 8 マイナーバージョンを 8.4 に設定する必要があります。

    $ export LEAPP_UNSUPPORTED=1
    $ export LEAPP_DEVEL_TARGET_RELEASE=8.4

    LEAPP_DEVEL 接頭辞を付けて環境変数を使用する場合は、LEAPP_UNSUPPORTED 環境変数を使用する必要があります。

  11. Leapp プロセスから、永続的なネットワーク名のアクターを削除します。

    注記

    Leapp によるアップグレードプロセスを実行する前にネットワークインターフェイス名を変更しない場合、RHEL 8.2 へのアップグレードの完了後にインターフェイス名が変わる可能性があります。ネットワークインターフェイス名の名前変更の詳細については、「予測可能なアンダークラウドノード NIC 名の使用」 を参照してください。

    $ sudo rm -f /usr/share/leapp-repository/repositories/system_upgrade/el7toel8/actors/persistentnetnamesdisable/actor.py
  12. Leapp によるアップグレードプロセスを開始します。

    $ sudo -E leapp upgrade --debug --enablerepo rhel-8-for-x86_64-baseos-eus-rpms --enablerepo rhel-8-for-x86_64-appstream-eus-rpms --enablerepo fast-datapath-for-rhel-8-x86_64-rpms --enablerepo ansible-2.9-for-rhel-8-x86_64-rpms

    --enablerepo オプションを使用して、Leapp によるアップグレードプロセス中に有効にするリポジトリーを設定します。特に新しいバージョンの Open vSwitch を使用する場合は、Red Hat OpenStack Platform 16.2 への移行を円滑に行うために、これらのリポジトリーを追加する必要があります。

  13. leapp upgrade コマンドが正常に完了するのを待ちます。
  14. ルートディレクトリーに空の .autorelabel ファイルを作成します。

    $ sudo touch /.autorelabel

    リブート後、SELinux はこのファイルを検出し、自動的にファイルシステムのラベルを変更します。

  15. アンダークラウドをリブートします。

    $ sudo reboot
  16. DNF の設定で定義されているトランザクションの除外対象から、Leapp のパッケージを削除します。

    $ sudo dnf config-manager --save --setopt exclude=''