3 システムのアップグレード
この章では、評価フェーズおよびアップグレード・フェーズである、システム・アップグレードの各段階について説明します。これらの段階で使用する主なコマンドは、leapp preupgrade
とleapp upgrade
であり、その後にコマンド引数が続きます。これらの引数のリストでは、-help
または--help
引数を使用します。次に例を示します:
sudo leapp preupgrade --help
特に指定のないかぎり、Oracle Linux 7システムのアップグレードのためのすべての手順は、Oracle Cloud Infrastructure上のOracle Linux 7インスタンスのアップグレードにも当てはまります。
アップグレードのためのシステムの機能の評価
アップグレード前フェーズでは、アップグレードのためにシステムの準備ができているかどうかが確認されます。
重要:
Leappでのアップグレードのためにシステムをより適切に準備できるように、「既知の問題」も参照してください。
アップグレード前処理の実行
アップグレード前フェーズでは、アップグレードのためにシステムの準備ができているかどうかを確認できます。
アップグレードを妨げる可能性のある問題がシステムから排除されるように、アップグレード前フェーズを実行することをお薦めします。このフェーズでは、アップグレードのリスクを特定する評価レポートを生成します。レポートには、それらのリスクを解決するための推奨事項も記載されます。
-
/etc/ssh/sshd_config
ファイルでroot SSHログイン権限を付与します。PermitRootLogin yes
-
プロキシ・サーバーを使用する場合は、リポジトリ・エントリごとにプロキシ設定を追加することで
/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
-
preupgradeコマンドを実行します。
システムまたはOracle Cloud Infrastructureインスタンス用の適切なコマンド引数を使用します。
-
システムの場合:
sudo leapp preupgrade --oraclelinux [--enablerepo repository]
-
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
でリスクが報告されなくなったことを確認したら、次のようにシステムをアップグレードします:
-
コンソールを使用して、アップグレードするシステムまたは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
OCIはrsaキーのみをリクエストするため、一部のシステムでは、/etc/ssh/ssh_config
ディレクトリに次のものを追加する必要がある場合があります:HostkeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa
-
-
アップグレードするシステムまたはインスタンスの別のターミナル・ウィンドウで、システムまたはOracle Cloud Infrastructureインスタンスのどちらをアップグレードするかに応じて、適切なコマンド引数を指定してupgradeコマンドを実行します。
-
システムの場合:
sudo leapp upgrade --oraclelinux [--enablerepo repository]
-
Oracle Cloud Infrastructure上のインスタンスの場合:
sudo leapp upgrade --oci [--enablerepo repository]
コマンド引数の詳細は、コマンド引数を使用したリポジトリの有効化を参照してください。
-
- レポート・サマリーでエラーまたは阻害要因が返されないことを確認します。たとえば、次のレポートにはエラーや阻害要因は表示されていません:
Debug output written to /var/log/leapp/leapp-upgrade.log =========================================== REPORT OVERVIEW =========================================== HIGH and MEDIUM severity reports: 1. Using repository not supported by Oracle 2. Packages not signed by Oracle found on the system 3. Default Boot Kernel 4. PostgreSQL (postgresql-server) has been detected on your system 5. Managed instance upgrade requires user to accept certain requirements for OS Management Service 6. Managed instance upgrade requires user to accept certain requirements for used Software Source. Reports summary: Errors: 0 Inhibitors: 0 HIGH severity reports: 3 MEDIUM severity reports: 4 LOW severity reports: 1 INFO severity reports: 2 Before continuing consult the full report: A report has been generated at /var/log/leapp/leapp-report.json A report has been generated at /var/log/leapp/leapp-report.txt =========================================== END OF REPORT OVERVIEW ===========================================
エラーまたは阻害要因が表示された場合は、システムを再起動する前に解決してください。
-
システムを再起動します。
sudo reboot
-
システムの再起動中に、コンソールで進行状況をモニターします。
起動プロセスが完了すると、ユーティリティによって、自動的にパッケージのアップグレードが続行されます。この操作は完了までにしばらく時間がかかり、複数回、自動で再起動されます。
注意:
この段階で進行中のプロセスを中断しないでください。ログイン画面が表示されるまで待ちます。この画面には、アップグレード・プロセス全体が完了したことが示されます。その後に初めて、システムの使用を開始できるようになります。
-
コンソールにログイン画面が表示されたら、適切な資格証明を使用してログインします。
インスタンスのアップグレードが完了すると、そのインスタンスで、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
)が生成されます。ターミナルで、次のステップを実行します:
-
/var/log/leapp/leapp-report.txt
を調べ、アップグレード・プロセス後に完了する必要がある重要な推奨事項をすべて実行します。 -
次の検証を実行します。
システムの新しいOSバージョンを確認するには、次のように入力します。
cat /etc/oracle-release
システムのカーネル・バージョンを確認するには、次のコマンドを入力して、カーネルに
el8
部分文字列が含まれていることを確認します。uname -r
次のコマンドを使用して、システムのデフォルトのカーネルを識別することもできます。
sudo grubby --default-kernel