すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:RHEL 7からRHEL 8へのアップグレード

最終更新日:Aug 26, 2024

2024年6月30日以降、Red Hat Enterprise Linux (RHEL) 7は、メンテナンスサポートフェーズから拡張ライフフェーズに移行しました。 Red Hatは、Extended Lifeフェーズで限定的な技術サポートを提供します。 Elastic Compute Service (ECS) インスタンスとアプリケーションがRHEL 7上にデプロイされている場合は、RHEL 7をRHEL 8にアップグレードして、新しいサービス機能を使用し、最新のハードウェアプラットフォームおよび独立系ソフトウェアベンダー (ISV) ソフトウェアとの互換性を維持することを推奨します。 このトピックでは、ECSインスタンスでRHEL 7をRHEL 8にアップグレードする方法について説明します。

説明

現在のビジネスをRHEL 7で維持する必要がある場合は、Alibaba Cloud RHEL Extended Life Cycle Support (ELS) アドオンサブスクリプションを購入して、ELSフェーズで継続的なソフトウェアメンテナンスと技術サポートを受けることを推奨します。 詳細については、「Red Hat Enterprise Linux 7 ELSガイダンス」をご参照ください。

前提条件

  • アップグレードするECSインスタンスは、RHEL 8を実行するための要件を満たしています。 詳細については、「Red Hat Enterprise Linuxテクノロジーの機能と制限」をご参照ください。

  • ECSインスタンスは、Alibaba Cloud Marketplaceで購入されたRHEL 7サブスクリプションを含むRHEL 7イメージ、またはAlibaba Cloudにインポートされ、別途購入されたAlibaba Cloud RHEL 7サブスクリプションを含むRHEL 7イメージを使用します。

    説明
    • オペレーティングシステムにRHEL 7サブスクリプションがあるかどうかを確認するには、rpm -q client-rhel7コマンドを実行します。 client-rhel7-3.0-1.el7_9.noarchと同様のコマンド出力が返された場合、Alibaba Cloud RHEL 7サブスクリプションを購入しました。

    • Red Hat RHEL 7サブスクリプションを購入した場合は、Red Hatの公式WebサイトでRHEL 7からRHEL 8へのアップグレードを参照してください。

手順

重要

アップグレード操作はリスクを引き起こす可能性があります。 アップグレードを実行する前に、インスタンスにディスクのスナップショットを作成して重要なデータをバックアップし、アップグレードプロセスとプロセス中に発生する可能性のある問題に慣れることをお勧めします。 アップグレードを実行するときは注意してください。 ディスクのスナップショットの作成方法については、「ディスクのスナップショットの作成」をご参照ください。

  1. ルートユーザーとしてRHEL 7オペレーティングシステムを実行しているECSインスタンスに接続します。

    詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。

  2. アップグレードのためにRHEL 7オペレーティングシステムを準備します。

    1. 次のコマンドを実行してRHEL 7オペレーティングシステムを最新のマイナーバージョンに更新し、インスタンスを再起動して更新を有効にします。

      yum -y update
      reboot
    2. 次のコマンドを実行して、RHEL 7オペレーティングシステムにLeappユーティリティをインストールします。

      yum -y install leapp leapp-rhui-alibaba --enablerepo="*"
  3. アップグレード前のチェックを実行します。

    RHEL 7はRHEL 8と大きく異なるため、アップグレード前のチェックを実行するにはLeappユーティリティを使用する必要があります。 Leappチェック結果を表示し、提案に基づいて構成を変更してアップグレード要件を満たすことができます。

    1. 次のコマンドを実行して、アップグレード前のチェックを実行します。 デフォルトでは、RHEL 7はRHEL 8の最新バージョンにアップグレードされます。

      leapp preupgrade  --no-rhsm
      説明
      • RHEL 8バージョンを指定することもできます。 たとえば、RHEL 8.8にアップグレードするには、leapp preupgrade -- no-rhsm -- target 8.8コマンドを実行します。

      • サポートされているRHEL 8のバージョンを表示するには、leapp preupgrade -hコマンドを実行します。

    2. アップグレード前のチェック結果を表示します。

      Leappアップグレード前チェックログは、次のログファイルに保存されます。

      • /var/log/leapp/leapp-preupgrade.log: Leappユーティリティのログを保存します。

      • /var/log/leapp/leapp-report.txt: アップグレード前のチェックレポートをテキスト形式で保存します。

      • /var/log/leapp/leapp-report.json: アップグレード前のチェックレポートをJSON形式で保存します。

      アップグレード前のチェックが失敗した場合、次の図に示すように、特定の失敗した項目 (阻害剤) が表示されます。

      image.png

    3. アップグレード前レポートで報告される問題を解決します。

      アップグレード前のチェックレポートを /var/log/leapp/leapp-report.txtファイルで分析します。 Leappユーティリティが提供する修復の提案に従って、報告されたすべての問題を解決します。 次のセクションでは、アップグレード前のチェックレポートで報告されるいくつかの一般的な問題と、問題を解決する方法について説明します。

      • 問題1: 複数のカーネルバージョンがインストールされています。

        Risk Factor: high (inhibitor)
        Title: Multiple devel kernels installed
        Summary: DNF cannot produce a valid upgrade transaction when multiple kernel-devel packages are installed.
        Remediation: [hint] Remove all but one kernel-devel packages before running Leapp again.
        [command] yum -y remove kernel-devel-3.10.0-1160.11.1.el7

        を削除する

        解決策: 複数のカーネルバージョンがインストールされている場合は、最新バージョンを除くすべてのカーネルバージョンをアンインストールします。 最新バージョンを除くすべてのカーネルバージョンをアンインストールするには、Leappユーティリティで推奨されるコマンドを実行します。 この例では、yum -y remove kernel-devel-3.10.0-1160.11.1.el7コマンドが推奨コマンドです。

      • 問題2: RHEL 8でサポートされていないカーネルモジュールが読み込まれます。

        Risk Factor: high (inhibitor)                                                                                                                                                                                         
        Title: Leapp detected loaded kernel drivers which have been removed in RHEL 8. Upgrade cannot proceed.                                                                                                                
        Summary: Support for the following RHEL 7 device drivers has been removed in RHEL 8:                                                                                                                                  
             - floppy

        解決策: RHEL 8でサポートされていないカーネルモジュールがロードされている場合は、コマンドを実行してカーネルモジュールをアンインストールします。 この例では、RHEL 8でサポートされていないフロッピーモジュールがロードされます。 フロッピーモジュールをアンインストールするには、次のコマンドを実行します。

        rmmod floppy
      • 問題3: sshd_configファイルでPermitRootLoginオプションが正しく設定されていません。

        Risk Factor: high (inhibitor)
        Title: Possible problems with remote login using root account
        Summary: OpenSSH configuration file does not explicitly state the option PermitRootLogin in sshd_config file, which will default in RHEL8 to "prohibit-password".
        Remediation: [hint] If you depend on remote root logins using passwords, consider setting up a different user for remote administration or adding "PermitRootLogin yes" to sshd_config. 
        If this change is ok for you, add explicit "PermitRootLogin prohibit-password" to your sshd_config to ignore this inhibitor

        を無視してください

        解決策:

        1. /etc/sshd/sshd_configファイルで、PermitRootLoginのデフォルト値をyesに設定します。

          説明

          RHEL 7とRHEL 8のPermitRootLoginのデフォルト値は異なります。

          • RHEL 7では、PermitRootLoginのデフォルト値はyesで、rootユーザーのパスワードベースおよびキーベースのログオンを有効にします。

          • RHEL 8では、PermitRootLoginのデフォルト値は、rootユーザーのパスワードベースのログオンを無効にするprohibit-passwordです。

        2. 次のコマンドを実行して、sshdを再起動します。

          systemctl restart sshd
      • 問題4: 必要な回答が回答ファイルにありません。

        Risk Factor: high (inhibitor)
        Title: Missing required answers in the answer file
        Summary: One or more sections in answerfile are missing user choices: remove_pam_pkcs11_module_check.confirm
        For more information consult https://leapp.readthedocs.io/en/latest/dialogs.html
        Remediation: [hint] Please register user choices with leapp answer cli command or by manually editing the answerfile.
        [command] leapp answer --section remove_pam_pkcs11_module_check.confirm=True

        解決策: この例では、RHEL 8でサポートされていないPAMモジュールを削除するかどうかについての質問に対する回答が /var/log/leapp/answerfileファイルにありません。 次のコマンドを実行してconfirmTrueに設定し、質問に答えてPAMモジュールの削除を確認します。

        leapp answer --section remove_pam_pkcs11_module_check.confirm=True

        image.png

  4. 次のコマンドを実行してRHEL 7をアップグレードします。 デフォルトでは、RHEL 7はRHEL 8の最新バージョンにアップグレードされます。

    leapp upgrade  --no-rhsm
    説明

    RHEL 8バージョンを指定することもできます。 たとえば、RHEL 8.8にアップグレードするには、leapp upgrade -- no-rhsm -- target 8.8コマンドを実行します。

    次のコマンド出力は、アップグレードが完了したことを示します。

    image.png

  5. 次のコマンドを実行して、インスタンスを再起動します。

    reboot
  6. RHEL 8オペレーティングシステムのアップグレード後のステータスを確認します。

    • アップグレードログまたはレポートを確認します。

      RHEL 8オペレーティングシステムでは、/var/log/leapp/leapp-upgrade.txtファイルのアップグレードログ、または /var/log/leapp/leapp-report.txtファイルのアップグレードレポートを表示して、アップグレードプロセスの詳細を取得できます。

      • 次のログ情報は、特定のソフトウェアパッケージのインストールまたはアップグレードに失敗する可能性があることを示しています。 アップグレード後にソフトウェアパッケージを手動でインストールできます。

        Risk Factor: high
        Title: Packages from unknown repositories may not be installed
        Summary: 3 packages may not be installed or upgraded due to repositories unknown to leapp:
        - python3-pyxattr (repoid: rhel8-CRB)
        - rpcgen (repoid: rhel8-CRB)
        - ustr (repoid: rhel8-CRB)
        Remediation: [hint] In case the listed repositories are mirrors of official repositories for RHEL (provided by Red Hat on CDN) and their repositories IDs has been customized, you can change the configuration to use the official IDs instead of fixing the problem. You can also review the projected DNF upgrade transaction result in the logs to see what is going to happen, as this does not necessarily mean that the listed packages will not be upgraded. You can also install any missing packages after the in-place upgrade manually.
      • 次のログ情報は、特定のRHEL 7パッケージがアップグレードされていないことを示します。 パッケージを削除して、オペレーティングシステムをサポートされている状態に保持できます。

        Risk Factor: high
        Title: Some RHEL 7 packages have not been upgraded
        Summary: Following RHEL 7 packages have not been upgraded:
        leapp-upgrade-el7toel8-0.18.0-1.el7_9
        kernel-3.10.0-1160.92.1.el7
        leapp-rhui-alibaba-1.0.0-1.el7_9
        Please remove these packages to keep your system in supported state.

        yum remove leapp-upgrade-el7toel8-0.18.0-1.el7_9 kernel-3.10.0-1160.92.1.el7 leapp-rhui-alibaba-1.0.0-1.el7_9を実行して、パッケージを削除します。

    • RHEL 8でビジネスが期待どおりに実行されるかどうかを確認します。

  7. (条件付きで必要) RHEL 8のソフトウェアリポジトリを設定するには、次のコマンドを実行します。

    アップグレードを実行すると、/etc/dnf/vars/releaseverファイルがデフォルトで変更され、前の手順で使用したRHEL 8バージョンが指定されます。 たとえば、RHEL 8.8ソフトウェアリポジトリアドレスはhttps:// xxxx/8.8/xxxに設定され、RHEL 8.8ソフトウェアパッケージにのみアクセスできます。 RHEL 8.10などのRHEL 8の最新のマイナーバージョンのパッケージに自動的にアクセスしたい場合は、リリース設定ファイルを削除してメタデータキャッシュを再構築できます。 これにより、最新のセキュリティパッチと機能の更新を取得できます。

    rm -f /etc/dnf/vars/releasever
    dnf clean all && dnf makecache

    実行が完了すると、ソフトウェアリポジトリアドレスがhttps:// xxxx/8/xxxに更新され、RHEL 8パッケージの最新バージョンを入手できます。

関連ドキュメント

  • RHELの詳細については、「Red Hat Enterprise Linux」をご参照ください。

  • RHEL 7 ELSフェーズの詳細については、Red Hatがリリースした公式のFAQを参照してください。