3 システムのアップグレード

この章では、評価フェーズおよびアップグレード・フェーズである、システム・アップグレードの各段階について説明します。これらの段階で使用する主なコマンドは、leapp preupgradeleapp upgradeであり、その後にコマンド引数が続きます。これらの引数のリストでは、-helpまたは--help引数を使用します。次に例を示します:

sudo leapp preupgrade --help

特に指定のないかぎり、Oracle Linux 7システムのアップグレードのためのすべての手順は、Oracle Cloud Infrastructure上のOracle Linux 7インスタンスのアップグレードにも当てはまります。

アップグレードのためのシステムの機能の評価

アップグレード前フェーズでは、アップグレードのためにシステムの準備ができているかどうかが確認されます。

重要:

Leappでのアップグレードのためにシステムをより適切に準備できるように、「既知の問題」も参照してください。

アップグレード前処理の実行

アップグレード前フェーズでは、アップグレードのためにシステムの準備ができているかどうかを確認できます。

アップグレードを妨げる可能性のある問題がシステムから排除されるように、アップグレード前フェーズを実行することをお薦めします。このフェーズでは、アップグレードのリスクを特定する評価レポートを生成します。レポートには、それらのリスクを解決するための推奨事項も記載されます。

  1. /etc/ssh/sshd_configファイルでroot SSHログイン権限を付与します。

    PermitRootLogin yes
  2. プロキシ・サーバーを使用する場合は、リポジトリ・エントリごとにプロキシ設定を追加することで/etc/yum.repos.d/leapp-upgrade-repos-ol8.repoを編集します。

    1回の操作で設定を追加するには、次のコマンドを実行します。

    sudo sed -i '/^enabled=0.*/a proxy=http://proxy-host:proxy-port' /etc/yum.repos.d/leapp-upgrade-repos-ol8.repo 
  3. preupgradeコマンドを実行します。

    システムまたはOracle Cloud Infrastructureインスタンス用の適切なコマンド引数を使用します。

    • システムの場合:

      sudo leapp preupgrade --oraclelinux [--enablerepo repository]
    • Oracle OS Management Serviceエージェントを実行していないOracle Cloud Infrastructure内のインスタンスの場合:

      sudo leapp preupgrade --oci [--enablerepo repository]

    引数の詳細は、コマンド引数を使用したリポジトリの有効化を参照してください。

    このプロセスでは、プロセス・ログ、レポートおよびanswerfileというファイルが生成されます。

Leappレポートの分析

/var/log/leapp/leapp-report.txtは、アップグレードに対する潜在的なリスクを特定します。リスクは高、中、低に分類されます。アップグレードを妨げる可能性が高いリスクは、さらに阻害要因として分類されます。このレポートには、特定されたリスクの背後にある問題が要約され、必要に応じて修正も提案されます。

推奨される処置を完了して、高とラベル付けされた、アップグレード・プロセスを妨げる可能性があるリスクを排除してください。

レポートされたリスクに対処した後、preupgradeコマンドを再度実行します。再生成されたレポートで、すべての重大なリスクが排除されていることを確認します。

レポートの内容をわかりやすく説明するために、次の例を考えてみます。

Pythonバージョンの問題

Leappレポートには、次の内容が記載されている場合があります。

Risk Factor: high
Title: Difference in Python versions and support in OL 8
Summary: In OL 8, there is no 'python' command. Python 3 (backward incompatible)
 is the primary Python version and Python 2 is available with limited support an
d limited set of packages. Read more here: https://docs.oracle.com/en/operating-
systems/oracle-linux/8/python/
Remediation: [hint] Please run "alternatives --set python /usr/bin/python3" after upgrade

例に示すように、リスクによっては、アップグレードに実行する必要があるアクションが提案されます。そのため、リスクは高くても、阻害要因としてラベル付けされません。処置は後で実行できます。

GPGキーの問題

レポートでは、gpg-pubkeyに関する警告が表示される場合があります。

Risk Factor: high 
Title: Packages not signed by Oracle found on the system 
Summary: The following packages have not been signed by Oracle and may be 
removed during the upgrade process in case Oracle-signed packages to be removed 
during the upgrade depend on them: 
- gpg-pubkey

この問題を解決するには、次のコマンドを実行します。

sudo rpm -qa | grep gpg-pubkey

コマンド出力にOracle Linux 7公開キーgpg-pubkey-ec551f03-53619141のみが示されている場合は、この問題を無視しても支障ありません。それ以外の場合は、レポート内の他の署名されていないパッケージまたはgpg-pubkeyエントリがアップグレード中に削除される可能性があるため、これらを手動で分析する必要があります。

 Leapp Answerfileへの情報の提供

/var/log/leapp/leapp-report.txtの推奨事項を実施するのみでなく、/var/log/leapp/answerfile内のすべての項目に回答を提供する必要もあります。

阻害要因は/var/log/leapp/answerfile/var/log/leapp/leapp-report.txtの両方で報告される可能性があり、後者のファイルは代替処置を提供します。内容が重複している場合でも、アップグレードが正常に行われるように、常に両方のファイルを調べてください。

/var/log/leapp/answerfileファイルは、Leappがシステムで実行する特定の検証チェックで構成されます。検証チェックにはシステムに関する情報が含まれており、実行するアクションの確認を求めるプロンプトも表示されます。このファイルには、必要な対応のガイドとなるコンテキストと情報が記載されています。

ノート:

answerfileにリストされているすべての検証チェックに回答する必要があります。未回答の項目があると、アップグレード・プロセスが停止します。

次に、/var/log/leapp/answerfileからのサンプル・エントリを示します。

[remove_pam_pkcs11_module_check]
# Title:                 None
# Reason:                Confirmation
# =================== remove_pam_pkcs11_module_check.confirm ==================
# Label:                 Disable pam_pkcs11 module in PAM configuration? If no, the upgrade  
                         process will be interrupted.
# Description:           PAM module pam_pkcs11 is no longer available in RHEL-8 since it was 
                         replaced by SSSD.
# Type:                  bool
# Default:               None
# Available choices: True/False
# Unanswered question. Uncomment the following line with your answer
# confirm =

例に基づいて、各検証チェックは、remove_pam_pkcs11_module_checkのように、大カッコで囲まれたセクション見出しで識別されます。見出しの後に、問題の説明と問題に対処するための有効な対応が続きます。

answerfileに回答を提供するには、次のいずれかの方法を選択します。

  • leapp Answerコマンドを使用します。

    このコマンドは、修正が必要な特定のセクションで実行します。たとえば、PAMモジュールの検証を確認するには、次のように入力します。

    sudo leapp answer --section remove_pam_pkcs11_module_check.confirm=True
  • /var/log/leapp/answerfileの内容を編集します。

    確認する特定のセクション([remove_pam_pkcs11_module_check]など)に移動し、そのconfirm =行のコメントを解除し、回答を指定します。次に例を示します。

    confirm = True

ノート:

Btrfsファイル・システムを使用するシステムは、UEKの使用への切替えも/var/log/leapp/answerfileで確認する必要があります。「Leappでアップグレード可能なカーネル」で説明したように、Oracle Linux 8でBtrfsファイル・システムを使用するには、UEKカーネルが必要です。カーネルのアップグレードを確認するには、次のコマンドを発行してanswerfileを更新します。

sudo leapp answer --section confirm_UEK_install_and_default_boot_kernel.confirm=True

または、answerfileの特定のセクションを編集できます。

アップグレードの実行

/var/log/leapp/answerfileを正しく完了し、/var/log/leapp/leapp-report.txtでリスクが報告されなくなったことを確認したら、次のようにシステムをアップグレードします。

  1. コンソールを使用して、アップグレードするシステムまたはOracle Cloud Infrastructureインスタンスに接続します。

    • VNCサーバーを使用して構成されたリモート・システムをアップグレードする場合は、VNCクライアントを使用してそのシステムに接続します。

    • Oracle Cloud Infrastructureインスタンスに取り組んでいる場合は、前に「アップグレードの準備」で作成したコンソール接続を使用してそのインスタンスに接続します。手順は、シリアル・コンソールへの接続(https://docs.oracle.com/iaas/Content/Compute/References/serialconsole.htm#Instance_Console_Connections )を参照してください。

      たとえば、ローカル・ターミナル・ウィンドウでは、そのインスタンスに接続するために指定するコマンドは次の構文のようになります。

      ssh -o ProxyCommand='ssh additional-commands

      このコマンドを最初に使用したときに機能しない場合は、-i path-to-keyオプションを指定する必要がある可能性があります。次に例を示します。

      ssh -i path-to-key -o ProxyCommand='ssh -i path-to-key additional-commands
  2. アップグレードするシステムまたはインスタンスの別のターミナル・ウィンドウで、システムまたはOracle Cloud Infrastructureインスタンスのどちらをアップグレードするかに応じて、適切なコマンド引数を指定してupgradeコマンドを実行します。

    • システムの場合:

      sudo leapp upgrade --oraclelinux [--enablerepo repository]
    • Oracle OS Management Serviceエージェントを実行していないOracle Cloud Infrastructure内のインスタンスの場合:

      sudo leapp upgrade --oci [--enablerepo repository]

    コマンド引数の詳細は、コマンド引数を使用したリポジトリの有効化を参照してください。

  3. アップグレードの最後に、システムを再起動します。

    sudo reboot
  4. システムの再起動中に、コンソールで進行状況をモニターします。

    起動プロセスが完了すると、ユーティリティによって、自動的にパッケージのアップグレードが続行されます。この操作は完了までにしばらく時間がかかり、複数回、自動で再起動されます。

    注意:

    この段階で進行中のプロセスを中断しないでください。ログイン画面が表示されるまで待ちます。この画面には、アップグレード・プロセス全体が完了したことが示されます。その後に初めて、システムの使用を開始できるようになります。

  5. コンソールにログイン画面が表示されたら、適切な資格証明を使用してログインします。

インスタンスのアップグレードが完了すると、そのインスタンスで、Oracle Cloud Infrastructureコンソールのインスタンス詳細ページに、そのOracle Linux 7ベース・イメージ(Oracle-Linux-7.9-2020-11.10-1など)が含まれるようになります。カスタム・タグを適用すると、インスタンスの作成後にそのインスタンスで実行されたアップグレードを追跡できます。

重要:

Oracle Linux 8の新機能、変更点および非推奨項目については、Oracle Linux 8のドキュメントを参照してください。それにより、実行が必要な可能性がある、アップグレード後タスクを特定できます。たとえば、アップグレード後も、Oracle Linux 7のネットワーク構成および設定は、従来のネットワーク・スクリプトに基づいて、引き続き動作します。ただし、ネットワーク・スクリプトはOracle Linux 8では非推奨となっています。そのため、アップグレードしたシステムのネットワーク設定を、NetworkManagerで管理するように再構成することを検討してください。詳細は、Oracle Linux 8 ネットワークの設定を参照してください。

アップグレードの確認

アップグレード・プロセスが完了すると、アップグレード前のフェーズと同じファイル(プロセス・ログ、レポートおよび/var/log/leapp/answerfile)が生成されます。コンソールで、次のステップを実行します。

  1. /var/log/leapp/leapp-report.txtを調べ、アップグレード・プロセス後に完了する必要がある重要な推奨事項をすべて実行します。

  2. 次の検証を実行します。

    システムの新しいOSバージョンを確認するには、次のように入力します。

    cat /etc/oracle-release

    システムのカーネル・バージョンを確認するには、次のコマンドを入力して、カーネルにel8部分文字列が含まれていることを確認します。

    uname -r

    次のコマンドを使用して、システムのデフォルトのカーネルを識別することもできます。

    sudo grubby --default-kernel