5 オンラインでのアップグレード #
SUSEは、動作中のシステムを新しいサービスパックにアップグレードするための直感的なグラフィカルツールとシンプルなコマンドラインツールを提供します。これらのツールは、サービスパックの「ロールバック」などをサポートしています。この章では、これらのツールを使用してサービスパックのアップグレードを実行する方法を順を追って説明します。
5.1 概念の概要 #
SUSEは、SUSE Linux Enterpriseファミリ用の新しいサービスパックを定期的にリリースしています。お客様が新しいサービスパックに容易にマイグレートしてダウンタイムを最小限に抑えることができるよう、SUSEはシステム実行中のオンラインマイグレーションをサポートしています。
SLE 12から、YaST WagonはYaSTマイグレーション(GUI)およびZypperマイグレーション(コマンドライン)に置き換えられました。これには以下のような利点があります。
最初のRPMが更新されるまで、システムは常に定義済みの状態
最初のRPMが更新されるまでは、キャンセルが可能.
エラーが発生した場合、簡単に回復.
システムツールを介して「ロールバック」を実行可能 - バックアップや復元は必要ない
アクティブなすべてのリポジトリを使用.
サービスパックをスキップ可能
オンラインマイグレーションは、サービスパック間のマイグレーションでのみサポートされています。オンラインマイグレーションは、新しいメジャーリリースへのアップグレードではサポートされていません。詳細については、第1章 「アップグレードパスと方法」を参照してください。
新しいメジャーリリースにアップグレードする場合は、オフラインマイグレーションを使用します。詳細については、第4章 「オフラインでのアップグレード」を参照してください。
アップグレードするシステムがSUSE Managerクライアントの場合は、YaSTオンラインマイグレーションやzypper migration
ではアップグレードできません。代わりに、「Client Migration」手順を使用してください。『
SUSE Manager Upgrade Guide』で説明されています。
5.2 サービスパックのマイグレーションのワークフロー #
サービスパックのマイグレーションは、YaST、zypper
、またはAutoYaSTにより実行できます。
サービスパックのマイグレーションを開始する前に、SUSEカスタマーセンターまたはローカルRMTサーバでシステムを登録する必要があります。SUSE Managerも使用できます。
どの方法を使用する場合も、サービスパックのマイグレーションは次の手順で構成されます。
登録システムで、マイグレーションターゲットの候補を見つけます。
マイグレーションターゲットを1つ選択します。
新しいリポジトリを要求して有効にします。
マイグレーションを実行します。
マイグレーションターゲットのリストは、インストールおよび登録されている製品に応じて異なります。新しいSPがまだ利用可能になっていない拡張機能がインストールされている場合、マイグレーションターゲットが提供されない可能性があります。
ホストで使用可能なマイグレーションターゲットのリストは、常にSUSEカスタマーセンターから取得され、インストールされている製品または拡張機能に応じて異なります。
5.3 サービスパックのマイグレーションのキャンセル #
サービスパックのマイグレーションは、マイグレーションプロセスの特定の段階でのみキャンセルできます。
パッケージのアップグレードが開始されるまで、システムには、サービスやリポジトリなどの最小限の変更しか加えられません。以前の状態に戻すには、
/etc/zypp/repos.d/*
を復元します。パッケージのアップグレードが開始された後は、Snapperスナップショットを使用して以前の状態に戻すことができます(第7章 「Snapperを使用したシステムの回復とスナップショット管理」を参照してください)。
マイグレーションターゲットが選択された後、SUSEカスタマーセンターによってリポジトリデータが変更されます。この状態を手動で元に戻すには、
SUSEConnect
--rollback
を使用します。
5.4 オンラインマイグレーションツール(YaST)を使用したアップグレード #
YaSTを使用してサービスパックのマイグレーションを実行するには、
ツールを使用します。デフォルトでは、YaSTはサードパーティリポジトリからパッケージをインストールしません。パッケージがサードパーティリポジトリからインストールされている場合、YaSTは、SUSEから提供されている同じパッケージによってパッケージが置き換えられるのを防ぎます。サービスパックのマイグレーションの実行時に、YaSTは推奨パッケージをすべてインストールします。特にカスタム最小インストールの場合、これによってシステムのインストールサイズが大幅に増加することがあります。
このデフォルトの動作を変更し、必要なパッケージのみを許可するには、/etc/zypp/zypp.conf
で、solver.onlyRequires
オプションを調整します。
solver.onlyRequires = true
また、ファイル/etc/zypp/zypper.conf
を編集して、installRecommends
オプションを変更します。
installRecommends=false
これにより、パッチや新しいパッケージのインストールなど、すべてのパッケージ操作の動作が変更されます。1回の起動に対してのみZypperの動作を変更するには、パラメータ--no-recommends
をコマンドラインに追加します。
サービスパックのマイグレーションを開始するには、次の手順を実行します。
登録サーバ上の未使用の拡張機能をすべて無効にして、将来、依存関係の競合が発生が発生するのを防ぎます。拡張機能を覚えていなくても、後でYaSTによって未使用の拡張機能リポジトリが検出され、無効にされます。
更新するマシンで実行されているGNOMEセッションにログインしている場合は、テキストコンソールに切り替えます。GNOMEセッション内からアップデートを実行することはお勧めしません。これは、リモートマシンからログインしている場合には該当しません(ただし、GNOMEでVNCセッションを実行している場合を除きます)。
YaSTオンラインアップデートを実行して、システム用の最新のパッケージのアップデートを取得します。
パッケージ yast2-migration およびその依存関係をインストールします(YaSTの › )。
YaSTを再起動します。再起動しないと、新しくインストールしたモジュールがコントロールセンターに表示されません。
YaSTで、SUSE Linux Enterprise Serverのバージョンによって、このモジュールは または の下にあります)。可能性のあるマイグレーションターゲットと概要がYaSTによって表示されます。システムで使用可能なマイグレーションターゲットが複数ある場合は、リストから1つを選択します。
を選択します(アップグレードするリストからマイグレーションターゲットを1つ選択し、
で続行します。マイグレーションツールによってアップデートリポジトリが提供される場合は、
で続行することをお勧めします。[Online Migration (オンラインマイグレーション)]ツールにより、DVDまたはローカルサーバから提供されている古いリポジトリが検出される場合は、それらを無効にすることを強くお勧めします。古いリポジトリは以前のSPのものです。SUSEカスタマーセンターまたはRMTからの古いリポジトリは、すべて自動的に削除されます。
概要を確認し、
をクリックしてマイグレーションを続行します。 を選択して確認します。マイグレーションが正常に完了したら、システムを再起動します。
5.5 Zypperによるアップグレード #
Zypperを使用してサービスパックのマイグレーションを実行するには、コマンドラインツールzypper
migration
をパッケージ
zypper-migration-pluginをインストールします。
サービスパックのマイグレーションの実行時に、YaSTは推奨パッケージをすべてインストールします。特にカスタム最小インストールの場合、これによってシステムのインストールサイズが大幅に増加することがあります。
このデフォルトの動作を変更し、必要なパッケージのみを許可するには、/etc/zypp/zypp.conf
で、solver.onlyRequires
オプションを調整します。
solver.onlyRequires = true
また、ファイル/etc/zypp/zypper.conf
を編集して、installRecommends
オプションを変更します。
installRecommends=false
これにより、パッチや新しいパッケージのインストールなど、すべてのパッケージ操作の動作が変更されます。1回の起動に対してのみZypperの動作を変更するには、パラメータ--no-recommends
をコマンドラインに追加します。
サービスパックのマイグレーションを開始するには、次の手順を実行します。
更新するマシンで実行されているGNOMEセッションにログインしている場合は、テキストコンソールに切り替えます。GNOMEセッション内からアップデートを実行することはお勧めしません。これは、リモートマシンからログインしている場合には該当しません(ただし、GNOMEでVNCセッションを実行している場合を除きます)。
SUSE Linux Enterpriseマシンをまだ登録していない場合は登録します。
tux >
sudo
SUSEConnect
--regcode YOUR_REGISTRATION_CODEマイグレーションを開始します。
tux >
sudo
zypper migration
マイグレーションプロセスに関する注記
システムで使用可能なマイグレーションターゲットが複数ある場合は、Zypperでリストから1つを選択できます。これはSPを1つまたは複数スキップするのと同じことです。基本製品(SLES、SLED)のオンラインマイグレーションを使用できるのは、メジャーバージョンのSP間のみであることに注意してください。
デフォルトでは、Zypperは、
zypper
dup
に渡されるオプション--no-allow-vendor-change
を使用します。パッケージがサードパーティリポジトリからインストールされている場合、このオプションにより、SUSEから提供されている同じパッケージによって該当するパッケージが置き換えられるのを防ぎます。Zypperにより、DVDまたはローカルサーバから提供されている古いリポジトリが検出される場合は、それらを無効にすることを強くお勧めします。SUSEカスタマーセンターまたはRMTからの古いリポジトリは自動的に削除されます。
すべての変更内容を確認します。特に、削除されるパッケージに注意してください。「
y
」と入力して続行します(アップグレードするパッケージの正確な数はシステムによって異なる可能性があります)。266 packages to upgrade, 54 to downgrade, 17 new, 8 to reinstall, 5 to remove, 1 to change arch. Overall download size: 285.1 MiB. Already cached: 0 B After the operation, additional 139.8 MiB will be used. Continue? [y/n/? shows all options] (y):
シェルをスクロールするには、Shift–Page ↑ またはShift–Page ↓ キーを使用します。
マイグレーションが正常に完了したら、システムを再起動します。
5.6 プレーンZypperによるアップグレード #
インターネットや登録サーバにアクセスできないため、システムが登録されていない場合、YaSTマイグレーションまたはzypper migration
を使用して新しいサービスパックに移行することはできません。この場合でも、プレーンZypperやいくつかの手動での対話操作により新しいサービスパックに移行することができます。
新しいサービスパックへのこのマイグレーションパスは、インターネットや登録サーバにアクセスできない未登録システムに「のみ」サポートされています。たとえば、特別に保護されたネットワーク内のマシンの場合などです。システムが登録済みである場合は、YaSTまたはZypperマイグレーションを使用してください。
このマイグレーションパスでは、移行するマシンによってアクセス可能な場所に新しいサービスパックのインストールソースを提供する必要があります。これは、たとえば、RMTサーバやSLPサーバをセットアップすることによって実現できます。
システムがインストール済みの製品バージョンの最新のアップデートリポジトリにアクセスできる必要もあります。
移行するマシンで実行されているグラフィカルセッションにログインしている場合は、そのセッションをログアウトして、テキストコンソールに切り替えます。グラフィカルセッション内からアップデートを実行することはお勧めしません。これは、リモートマシンからログインしている場合には該当しません(ただし、XでVNCセッションを実行している場合を除きます)。
SUSE Linux Enterpriseの古いリポジトリを使用してパッケージ管理ツールを更新します。
tux >
sudo
zypper
patch --updatestack-only現在リポジトリが割り当てられていないパッケージ(孤立したパッケージ)のリストを取得します。これらのパッケージは移行されず、マイグレーション後に動作する保証はありません(依存する他のパッケージは互換性がなくなったため変更されている可能性があるため)。リストを取得するには、次のコマンドを実行します:
tux >
sudo
zypper packages --orphanedリストを注意深く確認して、必要なくなったすべての孤立パッケージを削除します。残りのすべての孤立パッケージをメモしてください。後で比較用に必要となります。
次のコマンドを実行して、システムが現在サブスクライブしているすべてのリポジトリのリストを取得します。
tux >
sudo
zypper repos -u製品バージョン番号が
15-SP3
となるように、各リポジトリのURLをアップデートします。たとえば、リポジトリのURLが、http://rmt.example.com/repo/SUSE/Products/SLE-15-SP2-Product-SLES/x86_64/product/
の場合は、次のように変更します。
http://rmt.example.com/repo/SUSE/Products/SLE-15-SP3-Product-SLES/x86_64/product/
これは、有効になっているすべてのリポジトリで実行される必要があります。また、後でアクティブ化するときにシステム内に間違ったインストールソースが存在しないように、現在無効になっているリポジトリに対してもこの操作を行うことを検討してください。
リポジトリURLを変更するには、次のオプションがあります。
Zypperの使用。次のコマンドを実行して、古いリポジトリを削除します。
tux >
sudo
zypper removerepo OLD_REPO_ID削除後、対応する新しいリポジトリを次のコマンドを実行して追加します。
tux >
sudo
zypper addrepo -f URL NAME-15-SP3/etc/zypp/repos.d
でリポジトリ設定ファイルを編集する。各リポジトリは1つの設定ファイルで表されます。各ファイルで、baseurl
パラメータの値を変更する必要があります。
zypper repos -u
を実行して変更を確認し、次のコマンドを実行してリポジトリをアップデートします。tux >
sudo
zypper refresh -f -sリポジトリのアップデートに失敗した場合は、間違ったURLを入力していないか再確認します。問題が修正できない場合は、失敗したリポジトリを無効にすることをお勧めします。
すべてのリポジトリが正常に設定された場合は、次のコマンドを再度実行して、
tux >
sudo
zypper refresh -f -s「すべて」のリポジトリが最新であることを確認します。
マイグレーションを開始する前に、まずテストランを実行することをお勧めします。
tux >
sudo
zypper dup -D --no-allow-vendor-change --no-recommendsパラメータ
-D
は、実際にシステムを変更せずにマイグレーションをシミュレートする、ドライランを実行します。問題が発生する場合は、修正してから続行してください。テストランが成功した場合は、次のコマンドを実行して実際のマイグレーションを実行します:tux >
sudo
zypper dup --no-allow-vendor-change --no-recommends-no-allow-vendor-change
は、サードパーティRPMが基本システムからRPMを上書きしないようにします。--no-recommends
オプションは、初期インストール時に選択解除したパッケージが再び追加されないようにします。マイグレーションが終了して、システムが新しいサービスパックバージョンで起動したら、孤立パッケージのチェックを再度実行します。
tux >
sudo
zypper packages --orphaned新しいリストとマイグレーションを開始する前に生成されたリストを比較します。リストに新しいパッケージが表示された場合は、新しいサービスパックの別のモジュールに移動されたことが原因である可能性があります。以前のインストールにそのモジュールがなかった場合、このパッケージはアップデートされていません。
https://scc.suse.com/packagesでパッケージが属するモジュールを確認できます。
zypper addrepo
またはYaSTソフトウェアリポジトリモジュールを使用して、不足しているモジュールを追加し、次のコマンドを実行して後で孤立パッケージをアップデートします。tux >
sudo
zypper install --no-recommends LIST OF PACKAGES新しいサービスパックに正常に移行しました。
5.7 サービスパックのロールバック #
サービスパックの有効性が認められない場合は、SUSE Linux Enterpriseシステムをサービスパックのマイグレーションが開始される前の状態に戻すことができます。このためには、スナップショットが有効なBtrfsルートパーティションであることが前提条件です(これはSLES 12以降のデフォルトです)。詳細については第7章 「Snapperを使用したシステムの回復とスナップショット管理」を参照してください。
すべてのSnapperスナップショットのリストを取得します。
tux >
sudo
snapper list出力を確認して、サービスパックのマイグレーションの開始直前に作成されたスナップショットを見つけます。列
には対応するステートメントが含まれており、スナップショットには列 にimportant
というマークが付いています。列 のスナップショット番号と、列 の日付を覚えます。システムを再起動します。ブートメニューから15 SP3で始まるエントリを選択して起動します。
を選択して、前の手順で覚えた日付と番号が付いたスナップショットを選択します。2番目のブートメニュー(スナップショットのブートメニュー)がロードされます。SLESシステムが以前の状態で起動し、システムパーティションは読み込み専用でマウントされます。
root
としてログインし、正しいスナップショットを選択しているかどうかを確認します。また、すべてが正常に機能することも確認します。ルートファイルシステムは読み込み専用でマウントされるため、機能の制限が適用される場合があることに注意してください。問題がある場合、または間違ったスナップショットをブートした場合は、再起動して、ブート元として別のスナップショットを選択します。この時点では、恒久的な変更は加えられていません。スナップショットが正しく、正常に機能する場合、次のコマンドを実行して変更を確定します。
tux >
sudo
snapper rollback続いて再起動を行います。ブート画面で、デフォルトのブートエントリを選択して、復元されたシステムで再起動します。
リポジトリの設定が適切にリセットされているかどうかを確認します。さらに、すべての製品が適切に登録されているかどうかも確認します。いずれかが間違っていると、後でシステムを更新しようとしてもできなかったり、間違ったパッケージリポジトリを使用してシステムが更新されたりすることがあります。
次の手順を開始する前に、システムがインターネットにアクセスできることを確認してください。
次のコマンドを実行して、サービスとリポジトリを更新します。
tux >
sudo
zypper ref -fs次のコマンドを実行して、アクティブなリポジトリのリストを取得します。
tux >
sudo
zypper lrこのコマンドの出力を入念に確認します。更新対象として追加したサービスとリポジトリが一覧にされていてはなりません。たとえば、SLES 15 SP3からSLES15 GAへのマイグレーションをロールバックする場合、
SLES15-SP3
のリポジトリではなく、SLES15-GA
のリポジトリがリストに含まれている必要があります。間違ったリポジトリが一覧にされている場合は削除し、必要に応じて、製品またはサービスパックのバージョンに一致するバージョンに置き換えます。サポートされるマイグレーションパスのリポジトリのリストについては、2.3項 「モジュールの依存関係とライフサイクル」を参照してください。(リポジトリは自動的に更新されるため、手動での操作は必要ありませんが、確認して必要な修正を行うことがベストプラクティスです。)
最後に、次のコマンドを実行して、インストールされているすべての製品の登録状態を確認します。
tux >
sudo
SUSEConnect --statusすべての製品が「
登録されています
」とレポートされる必要があります。そうなっていない場合は、次のコマンドを実行して登録を修復します。tux >
sudo
SUSEConnect --rollback
以上で、システムは正常にサービスパックのマイグレーション開始直前にキャプチャされた状態に戻りました。
5.8 SUSE Managerを使用したアップグレード #
SUSE Managerは、SUSE Linux Enterpriseクライアントに対するアップデート、パッチ、およびセキュリティ修正を提供するためのサーバソリューションです。これには、一連のツールと、管理タスク用のWebベースのユーザインタフェースが付属しています。SUSE Managerの詳細については、https://www.suse.com/products/suse-manager/を参照してください。
マイグレーションにより、3つのメジャーバージョン内で特定のサービスパック(SP)を別のSPにマイグレートできます(たとえば、SLES 15 GAからSLES 15 SP1)。
マシンがSUSE Managerによって管理されている場合は、SUSE Managerドキュメントの説明に従ってアップデートしてください。「Client Migration」の手順については、https://documentation.suse.com/suma/で入手可能な『SUSE Manager Upgrade Guide』を参照してください。
5.9 openSUSE LeapからSUSE Linux Enterprise Serverへのアップグレード #
openSUSE LeapインストールをSUSE Linux Enterprise Serverにアップグレードすることができます。手順は5.4項 「オンラインマイグレーションツール(YaST)を使用したアップグレード」で説明したものと同様ですが、いくつかの追加の手順が必要となります。運用システムでこの手順を実行する前に、運用環境のセットアップを複製するテストシステムでまず実行することをお勧めします。
どのバージョンのopenSUSE Leapがマイグレーションに対応しているかを確認するには、1.2項 「SLES 15 SP3へのサポートされているアップグレードパス」を参照してください。
openSUSEはSUSE Linux Enterprise Serverよりも多くのパッケージを提供します。追加パッケージのほとんどはSUSE Package Hubから入手可能であり、マイグレートされます。SUSE Package Hubから入手できない追加パッケージは、マイグレーション後にアップデートを受けられなくなるため、後で削除する必要があります。
システムを動作させるために必要なすべてのパッケージが、SUSE Linux Enterprise ServerとSUSE Package Hubのリポジトリから入手できることを確認してください。SUSE Package Hubの詳細については、22.3項 「SUSE Package Hub」を参照してください。
openSUSE LeapからSUSE Linux Enterprise Serverにマイグレートするには、以下の手順に従ってください。
たとえば、Ctrl–Alt–F1を押して、TTYに切り替えます。
root
としてログインします。yast2- registration および rollback-helper パッケージをインストールします。
root #
zypper in yast2-registration rollback-helper
rollback-helper
サービスを有効化します。root #
systemctl enable rollback
SUSEカスタマーセンターにシステムを登録します。
root #
yast2 registration
マイグレーションを実行します。
root #
yast2 migration
パッケージが競合する場合は、YaSTが対処法のリストを表示するので、そこから選択します。
孤立したパッケージを削除します。
root #
zypper rm $(zypper --no-refresh packages --orphaned | gawk '{print $5}' | tail -n +5)
システムを再起動します。
root #
reboot
これで、SUSE Linux Enterprise Serverにシステムを正常にマイグレートできました。
マイグレーション後に問題が生じた場合は、サービスパックのアップグレードと同様にマイグレーションを元に戻すことができます。処理手順の詳細については、 5.7項 「サービスパックのロールバック」を参照してください。