5 オンラインでのアップグレード #
SUSEは、動作中のシステムを新しいサービスパックにアップグレードするための直感的なグラフィカルツールとシンプルなコマンドラインツールを提供します。両方のツールは、サービスパックの「ロールバック」などをサポートしています。この章では、これらのツールを使用してサービスパックのアップグレードを実行する方法を段階的に説明します。
5.1 概念の概要 #
SUSEは、SUSE Linux Enterpriseファミリ用の新しいサービスパックを定期的にリリースしています。お客様が新しいサービスパックに容易にマイグレートしてダウンタイムを最小限に抑えることができるよう、SUSEはシステム実行中のオンラインマイグレーションをサポートしています。
SLE 12から、YaST WagonはYaSTマイグレーション(GUI)およびZypperマイグレーション(コマンドライン)に置き換えられました。これには以下のような利点があります。
最初のRPMが更新されるまで、システムは常に定義済みの状態
最初のRPMが更新されるまでは、キャンセルが可能.
エラーが発生した場合に簡単に回復
システムツールを介して「ロールバック」を実行可能 - バックアップや復元は必要ない
アクティブなすべてのリポジトリを使用
サービスパックをスキップ可能
オンラインマイグレーションは、サービスパック間のマイグレーションでのみサポートされています。オンラインマイグレーションは、新しいメジャーリリースへのアップグレードではサポートされていません。詳細については、第2章 「アップグレードパスと方法」を参照してください。
新しいメジャーリリースにアップグレードする場合は、オフラインマイグレーションを使用します。詳細については、第4章 「オフラインでのアップグレード」を参照してください。
アップグレードするシステムがSUSE Multi-Linux Managerクライアントの場合は、YaSTオンラインマイグレーションやzypper migration
ではアップグレードできません。代わりに、「Client Migration」手順を使用してください。『SUSE Multi-Linux Manager Upgrade Guide』で説明されています。
5.2 サービスパックのマイグレーションのワークフロー #
サービスパックのマイグレーションは、YaST、zypper
、またはAutoYaSTにより実行できます。
サービスパックのマイグレーションを開始する前に、SUSEカスタマーセンターまたはローカルRMTサーバでシステムを登録する必要があります。SUSE Multi-Linux Managerも使用できます。
どの方法を使用する場合も、サービスパックのマイグレーションは次の手順で構成されます。
登録システムで、マイグレーションターゲットの候補を見つけます。
マイグレーションターゲットを1つ選択します。
新しいリポジトリを要求して有効にします。
マイグレーションを実行します。
マイグレーションターゲットのリストは、インストールおよび登録されている製品に応じて異なります。新しいSPがまだ利用可能になっていない拡張機能がインストールされている場合、マイグレーションターゲットが提供されない可能性があります。
ホストで使用可能なマイグレーションターゲットのリストは、常にSUSEカスタマーセンターから取得され、インストールされている製品または拡張機能に応じて異なります。
5.3 サービスパックのマイグレーションのキャンセル #
サービスパックのマイグレーションは、マイグレーションプロセスの特定の段階でのみキャンセルできます。
パッケージのアップグレードが開始されるまで、システムには、サービスやリポジトリの変更など、最小限の変更しか加えられません。以前の状態に戻すには、
/etc/zypp/repos.d/*
を復元します。パッケージのアップグレードが開始された後は、Snapperスナップショットを使用して以前の状態に戻すことができます(第10章 「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つ選択し、
で続行します。マイグレーションツールによってアップデートリポジトリが提供される場合は、
で続行することをお勧めします。オンラインマイグレーションツールにより、DVDまたはローカルサーバから古いリポジトリが検出される場合は、それらを無効にすることを強くお勧めします。古いリポジトリは以前のサービスパック用です。SUSEカスタマーセンターまたはRMTからの古いリポジトリは、自動的に削除されます。
登録サーバがモジュールまたは拡張機能のマイグレーションを提供しない場合、そのリポジトリ設定は変更されないままになります。これは通常、製品のバージョンまたはサービスパックに固有ではない
などのサードパーティリポジトリで発生します。必要に応じて、マイグレーション後にリポジトリ設定を手動で確認できます。概要を確認し、
をクリックしてマイグレーションを続行します。 を選択して確認します。マイグレーションが正常に完了したら、システムを再起動します。
5.5 Zypperによるアップグレード #
Zypperを使用してサービスパックのマイグレーションを実行するには、パッケージzypper-migration-pluginのコマンドラインツールzypper
migration
を使用します.
サービスパックのマイグレーションの実行時に、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マシンをまだ登録していない場合は登録します。
>
sudo
SUSEConnect
--regcode YOUR_REGISTRATION_CODEマイグレーションを開始します。
>
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セッションを実行している場合を除きます)。
パッケージ管理ツールを更新します。
>
sudo
zypper
patch --updatestack-only/etc/zypp/repos.d/
内のSUSE Linux Enterprise Serverリポジトリのすべての設定ファイルで変数$releasever
が使用されていることを確認します。>
grep baseurl /etc/zypp/repos.d/*.repo
/etc/zypp/repos.d/rmt.repo:baseurl=https://rmt.example.com/repo/SUSE/Products/SLE-15-SP5-Product-SLES/x86_64/product/ /etc/zypp/repos.d/updates.repo:baseurl=https://updates.suse.com/SUSE/Products/SLE-Product-SLES/$releasever/x86_64/product[...]この例では、ファイル
updates.repo
は変数を使用し、rmt.repo
はバージョン文字列15-SP5
をハードコードします。すべてのリポジトリ設定ファイルで15-SP5
のすべての出現箇所を$releasever
に置き換えるには、次のコマンドを実行します。>
sudo
sed -i 's/15-SP5/${releasever}/g' /etc/zypp/repos.d/*.repo
必要に応じて、異なるバージョン文字列を使用してこのコマンドを繰り返し、すべてのリポジトリ設定ファイルが更新されるようにします。
すべてのリポジトリが正しく設定されているかどうかを確認します。
>
sudo
zypper --releasever=15-SP7 repos -u
リポジトリURLに
15-SP7
が表示されるようになります。一部のサードパーティのリポジトリはバージョン管理されていない可能性があることに注意してください。これらはすべてのSUSE Linux Enterprise Serverリリースで動作するものと想定されています。すべてのリポジトリを15 SP7に切り替えて更新します。
>
sudo
zypper --releasever=15-SP7 refresh -f -s
リポジトリのアップデートに失敗した場合は、間違ったURLを入力していないか再確認します。問題が修正できない場合は、失敗したリポジトリを無効にすることをお勧めします。
マイグレーションをテストします。
>
sudo
zypper --releasever=15-SP7 dup -D --no-allow-vendor-change --no-recommends
パラメータ
-D
は、実際にシステムを変更せずにマイグレーションをシミュレートする、ドライランを実行します。問題が発生する場合は、修正してから続行してください。オプション
-no-allow-vendor-change
は、サードパーティのパッケージがベースシステムのRPMパッケージを置き換えることを防ぎます。--no-recommends
オプションは、初期インストール時に選択解除したパッケージが再び追加されないようにします。完全なディストリビューションアップグレードを実行します。
>
sudo
zypper --releasever=15-SP7 dup --no-allow-vendor-change --no-recommends
上記のコマンドを使用すると、zypperはすべてのパッケージを事前にダウンロードします。これにより、インターネット接続が失敗する可能性がある場合でも信頼性が高まります。パッケージをヒープ単位でダウンロードしてインストールするには、次のコマンドを実行します。
>
sudo
zypper zypper --releasever=15-SP7 dup --no-allow-vendor-change --no-recommends --download-in-heaps
ディストリビューションの更新が完了すると、SUSE Linux Enterprise Serverは
$releasever
変数を新しいバージョンに設定するため、--releasever
オプションで指定する必要がなくなります。マイグレーションが正常に完了したら、システムを再起動します。
5.7 サービスパックのロールバック #
サービスパックの有効性が認められない場合は、SUSE Linux Enterpriseシステムをサービスパックのマイグレーションが開始される前の状態に戻すことができます。このためには、スナップショットが有効なBtrfsルートパーティションであることが前提条件です(これはSLES 12以降のデフォルトです)。詳細については第10章 「Snapperを使用したシステムの回復とスナップショット管理」を参照してください。
すべてのSnapperスナップショットのリストを取得します。
>
sudo
snapper list出力を確認して、サービスパックのマイグレーションの開始直前に作成されたスナップショットを見つけます。列
には対応するステートメントが含まれており、スナップショットには列 にimportant
というマークが付いています。列 のスナップショット番号と、列 の日付を覚えます。システムを再起動します。ブートメニューから15 SP7で始まるエントリを選択して起動します。
を選択して、前の手順で覚えた日付と番号が付いたスナップショットを選択します。2番目のブートメニュー(スナップショットのブートメニュー)がロードされます。SLESシステムが以前の状態で起動し、システムパーティションは読み込み専用でマウントされます。
root
としてログインし、正しいスナップショットを選択しているかどうかを確認します。また、すべてが正常に機能することも確認します。ルートファイルシステムは読み込み専用でマウントされるため、機能の制限が適用される場合があることに注意してください。問題がある場合、または間違ったスナップショットをブートした場合は、再起動して、ブート元として別のスナップショットを選択します。この時点では、恒久的な変更は加えられていません。スナップショットが正しく、正常に機能する場合、次のコマンドを実行して変更を確定します。
>
sudo
snapper rollbackマシンを再起動します。ブート画面で、デフォルトのブートエントリを選択して、復元されたシステムで再起動します。
リポジトリの設定が適切にリセットされているかどうかを確認します。さらに、すべての製品が適切に登録されているかどうかも確認します。いずれかが間違っていると、後でシステムを更新しようとしてもできなかったり、間違ったパッケージリポジトリを使用してシステムが更新されたりすることがあります。
次の手順を開始する前に、システムがインターネットにアクセスできることを確認してください。
次のコマンドを実行して、サービスとリポジトリを更新します。
>
sudo
zypper ref -fs次のコマンドを実行して、アクティブなリポジトリのリストを取得します。
>
sudo
zypper lrこのコマンドの出力を入念に確認します。更新対象として追加したサービスとリポジトリが一覧にされていてはなりません。たとえば、SLES 15 SP7からSLES15 GAへのマイグレーションをロールバックする場合、
SLES15-GA
のリポジトリではなく、SLES15-SP7
のリポジトリがリストに含まれている必要があります。間違ったリポジトリが一覧にされている場合は削除し、必要に応じて、製品またはサービスパックのバージョンに一致するバージョンに置き換えます。サポートされるマイグレーションパスのリポジトリのリストについては、1.3項 「モジュールの依存関係とライフサイクル」を参照してください。(リポジトリは自動的に更新されるため、手動での操作は必要ありませんが、確認して必要な修正を行うことがベストプラクティスです。)
最後に、次のコマンドを実行して、インストールされているすべての製品の登録状態を確認します。
>
sudo
SUSEConnect --statusすべての製品が
Registered
とレポートされる必要があります。そうなっていない場合は、次のコマンドを実行して登録を修復します。>
sudo
SUSEConnect --rollback
以上で、システムは正常にサービスパックのマイグレーション開始直前にキャプチャされた状態に戻りました。
5.8 SUSE Multi-Linux Managerを使用したアップグレード #
SUSE Multi-Linux Managerは、SUSE Linux Enterpriseクライアントに対するアップデート、パッチ、およびセキュリティ修正を提供するためのサーバソリューションです。これには、一連のツールと、管理タスク用のWebベースのユーザインタフェースが付属しています。SUSE Multi-Linux Managerの詳細については、https://www.suse.com/products/multi-linux-manager/を参照してください。
マイグレーションにより、1つのメジャーバージョン内で特定のサービスパック(SP)を別のSPにマイグレートできます(たとえば、SLES 15 GAからSLES 15 SP7)。
マシンがSUSE Multi-Linux Managerによって管理されている場合は、SUSE Multi-Linux Managerドキュメントの説明に従ってアップデートしてください。「Client Migration」の手順については、https://documentation.suse.com/multi-linux-manager/で入手可能なSUSE Multi-Linux Manager Upgrade Guideを参照してください。
5.9 openSUSE LeapからSUSE Linux Enterprise Serverへのアップグレード #
openSUSE LeapインストールをSUSE Linux Enterprise Serverにアップグレードすることができます。どのバージョンの Leapがマイグレーションに対応しているかを確認するには、2.3項 「サポートされているSLES 15 SP7へのアップグレードパスおよびマイグレーションパス」を参照してください。
openSUSEはSUSE Linux Enterprise Serverよりも多くのパッケージを提供します。追加パッケージのほとんどはSUSE Package Hubから入手でき、マイグレートされます。SUSE Package Hubから入手できない追加パッケージは、マイグレーション後に更新を受け取らなくなるため、後で削除する必要があります。
システムを動作させるために必要なすべてのパッケージが、SUSE Linux Enterprise ServerおよびSUSE Package Hubリポジトリで使用可能であることを確認してください。SUSE Package Hubの詳細については、https://packagehub.suse.com/を参照してください。
5.9.1 yast2 migration
によるアップグレード #
次の手順は5.4項 「オンラインマイグレーションツール(YaST)を使用したアップグレード」で説明したものと同様ですが、いくつかの追加手順が必要となります。運用システムでこの手順を実行する前に、運用環境のセットアップを複製するテストシステムでまず実行することをお勧めします。
yast2 migration
によるopenSUSE LeapからSUSE Linux Enterprise Serverへのアップグレード #openSUSE LeapからSUSE Linux Enterprise Serverにマイグレートするには、以下の手順を実行します。
未使用アプリケーションをすべて閉じてTTYに切り替えます。たとえば、Ctrl–Alt–F1を押します。
root
としてログインします。yast2-migrationおよびrollback-helperパッケージをインストールします。
#
zypper in yast2-migration rollback-helper
rollback-helper
サービスを有効化します。#
systemctl enable rollback
SUSEカスタマーセンターにシステムを登録します。
#
yast2 registration
マイグレーションを実行します。
#
yast2 migration
パッケージが競合する場合は、YaSTが対処法のリストを表示するので、そこから選択します。
システムを再起動します。
#
reboot
これで、SUSE Linux Enterprise Serverにシステムを正常にマイグレートできました。第6章 「アップグレードの終了」を続行し、孤立したパッケージを削除して、完全にサポートされているSUSE Linux Enterpriseインストールを実行していることを確認します。
マイグレーション後に問題が生じた場合は、サービスパックのアップグレードと同様にマイグレーションを元に戻すことができます。処理手順の詳細については、 5.7項 「サービスパックのロールバック」を参照してください。
5.9.2 yast2 migration_sle
によるアップグレード #
openSUSE LeapからSUSE Linux Enterprise Serverへの簡略化されたマイグレーションは、Leap 15.4の時点では技術プレビューとして使用できます。
yast2 migration_sle
によるopenSUSE LeapからSUSE Linux Enterprise Serverへのアップグレード #openSUSE LeapからSUSE Linux Enterprise Serverにマイグレートするには、以下の手順を実行します。
未使用アプリケーションをすべて閉じます(推奨)。
yast2-migration-sleおよびrollback-helperパッケージをインストールします。
>
sudo
zypper in yast2-migration-sle rollback-helper
rollback-helper
サービスを有効化します。>
sudo
systemctl enable rollback
YaSTを開いて、
› の順に選択するか、次を実行します。>
sudo
yast2 migration_sle
ウィザードによってマイグレーションプロセスを順を追って実行できます。保留中の更新がある場合、システムを登録する前にインストールできます。登録するには、登録コードとメールアドレスを入力します。ローカルRMTサーバに登録するには、登録コードの代わりにURLを入力し、電子メール アドレスは空白のままにします。
システムが登録されると、SUSE Linux Enterprise Serverリポジトリが追加され、SLEパッケージがインストールされてopenSUSEのパッケージが置き換えられます。
システムを再起動します。
>
sudo
reboot
これで、SUSE Linux Enterprise Serverにシステムを正常にマイグレートできました。第6章 「アップグレードの終了」を続行し、孤立したパッケージを削除して、完全にサポートされているSUSE Linux Enterpriseインストールを実行していることを確認します。
マイグレーション後に問題が生じた場合は、サービスパックのアップグレードと同様にマイグレーションを元に戻すことができます。処理手順の詳細については、 5.7項 「サービスパックのロールバック」を参照してください。