アップデート
XCP-hl も XOA-hl も、署名済みのパッケージを使ってその場でアップデート できます。通常のパッケージ更新では再インストールは不要です。ホスト(XCP-hl)は、標準の XCP-ng と 同じく Xen Orchestra の Patches タブからアップデートします。 アプライアンス(XOA-hl)は、専用の XOA-HL Updates 設定ページから アップデートします。
このページの前半と後半は同じ構成です。Xen Orchestra での手順、 コマンドラインでの同じ操作、内部の仕組み、前のバージョンに戻す方法の 順に説明します。
XCP-hl(ハイパーバイザーホスト)のアップデート
xoa-image-20261022-a280852、パッケージ v5.113.2_e281c536-ce40(Xen Orchestra 5.113.2)。公開済みのコードに基づく手順で、このバージョンでのホストパッケージの適用と再起動は、検証環境でまだテストしていません。Xen Orchestra で行う
アップデートがあることを確認します。
Home > Hostsでは、 アップデートが保留されているホストに、不足しているパッチの数を示す 赤いバッジが付きます。
ホストの Patches タブを開きます。 ホストを選び、Patches を 開きます。パッケージごとに名前、説明、バージョン、リリース、 ダウンロードサイズが並び、行にある目のアイコンで RPM の変更履歴を 表示できます。プール単位の画面
Home > Pools > <プール> > Patchesにも プールマスターで不足しているパッケージが出ます。プール全体の操作前に、 各ホストを個別に確認してください。
対象範囲を選びます。 ホストの Patches タブにある Install all patches はそのホストを対象にします。プールの Patches タブにある Install pool patches はマスターから順にプール内の全ホストを対象にします。確定前にホストとプールの ID を確認してください。
どちらのボタンも XCP-ng のパッケージを個別には選べません。対象ホストごとにupdater.pyが有効な XCP-ng 標準リポジトリと XCP-hl リポジトリをまとめてyum updateし、保留中の標準パッケージも対象になります。一括処理は 原子的なロールバックを保証しません。プールの操作はマスターから 1 台ずつ 処理しますが、VM の退避やホスト再起動は行いません。特定の XCP-hl パッケージだけを更新する場合は、下の別途コマンドライン手順を使います。タスクの完了を待ち、ホスト接続を更新します。 このバージョンの XO では、 ホストのアップデータープラグインを呼び、適用後にそのホストの XAPI エージェントを再起動します。ホストが一時的に切断される場合があります。 この操作は XOA-HL アプライアンスの更新も
xo-serverの再起動も呼びません。 接続が戻らない場合はエラーを保存し、再試行前に独立したコンソールでホストを確認します。結果を確認します。 対象ホストとプールの一覧、タスク結果、パッケージと バージョン、未適用件数、再起動が必要という表示を更新して照合します。 バッジが消えただけでは、再起動や VM・ストレージの正常性は確認できません。

単一ホストの検証用プールでホストの更新をテストする
最初のホスト更新は、依存しているプールではなく、作り直せる検証用プールで行います。単一ホストでのテストでは、複数ホストのプールが更新中にどう動くかは分かりません。
始める前に
- リリースが分かっている単一ホストの検証用プールを使います。通常の VM、実行中のバックアップタスク、HA、そのホスト上で動く XOA-HL アプライアンスがないこと。
- 別のホストコンソール、ホストとネットワークの復旧計画、別の XOA-HL 接続を用意します。
- パッケージ全体(標準と HomeLab)について、承認された作業時間を確保します。再起動は別に判断します。
- 上記のイメージ、パッケージ、XO のバージョン、ホストとプールの UUID、マスター、管理アドレス、導入済みパッケージのバージョン、有効なリポジトリ ID、ホストの電源と有効状態、保留中のパッケージの正確な一覧を控えます。ホストコンソールで
yum check-updateを実行し、Patches タブと比べます。確認に失敗した場合や一覧が想定と違う場合は、作業を止めます。更新があるとyum check-updateは終了コード 100 を返すことがありますが、これは正常です。 - XOA-HL のブラウザーで
/#/hosts/<host-id>/patchesを開き、Install all patches を選び、ホストを確認して 1 回だけ確定します。行を選んでも、更新がそのパッケージに限定されることはありません。タスク ID、開始と終了の時刻、出力やエラーを控えます。一時的に切断されている間にもう一度クリックしたり、同時にコマンドラインで更新を始めたりしないでください。 - タスクが終わったら、別のコンソールと更新した XOA-HL の一覧を使い、控えた内容と比べます。導入済みのバージョン、残りのパッチ、ホストへの到達性、有効状態と電源状態、管理ネットワーク、SR の接続です。タスクが失敗した場合や接続が戻らない場合は、ログと実際のパッケージの状態を残します。一部だけ更新された場合は、ホストの担当者の復旧または再構築の計画に従います。元に戻ったと考えないでください。
- 再起動が必要と表示された場合は、プールが空の状態で、別途承認された再起動を計画します。VM やバックアップタスクが増えていないことを確認し、ホストの Patches タブで Reboot to apply updates を 1 回だけ選びます。再起動の強制や、ブロックされた一時停止、バックアップ、バージョン確認の回避を求める画面は受け入れないでください。別のコンソールでホストの復帰を待ってから、XOA-HL の接続、パッケージ、再起動の表示、ネットワーク、SR をもう一度確認します。ボタンやタスクの動きが想定と違う場合は、作業を止めて記録します。2 回目の再起動を強制しないでください。
確認: ホストに到達でき、パッケージが想定したバージョンで、残りのパッチも保留中の再起動もありません。更新前後のパッケージ一覧、タスクとコンソールの出力、正確なエラー、再起動の判断、最終的な接続状態を保存します。途中で中断したインストール、復旧、本番や複数ホストのプールでの可用性はここでは扱いません。ホストの保守と VM の退避は、稼働中のテスト VM を使う別の作業です。パッチのボタンでは行われません。
コマンドラインで行う
ホスト上で次のように実行します。
yum check-update # 何が利用できるか
yum update xcp-hl-release # リポジトリの設定そのもの
yum update xo-lite-ce xoa-proxy # XCP-hl のパッケージだけ
yum update # すべて(Patches タブと同じ)仕組み
XCP-ng には updater.py という XAPI プラグインが同梱されており、Xen
Orchestra はこれに利用できるアップデートの一覧を問い合わせます。XOA-hl は
この問い合わせに XCP-hl のリポジトリを含めるように変更してあるため、
XCP-hl のパッケージが標準の XCP-ng のものと並んで表示されます。
リポジトリは /etc/yum.repos.d/xcp-hl.repo という 1 つのファイルで定義され、
xcp-hl-release パッケージが所有しています。
| リポジトリ ID | 内容 | 公開元 |
|---|---|---|
xcp-hl-base | xcp-hl-release | xcp-hl |
xcp-hl-xolite | xo-lite-ce | xolite-ce |
xcp-hl-xoa-proxy | xoa-proxy | xoa-proxy |
updater.py に渡し、プラグインは渡されたリポジトリの
アップデートしか一覧に出しません。セクション名を変えてもエラーにはならず、
そのパッケージが Patches タブから黙って消えるだけです。リポジトリの設定変更をインストール済みのホストにも届けるため、
一度だけコピーするファイルではなく、パッケージとして配布しています。
設定の変更は yum update xcp-hl-release を通じてホストに届きます。
既存のホストでの初回設定
xcp-hl-release パッケージより前の ISO からインストールしたホストでは、
一度だけ初期設定が必要です。そのあとは設定を yum が管理します。
curl -L -o /etc/yum.repos.d/xcp-hl.repo \
https://vagrantin.github.io/xcp-hl/xcp-hl.repo
rpm --import https://vagrantin.github.io/xcp-hl/xcp-ng-ce-public.asc
yum clean all
yum install xcp-hl-releaseパッケージをインストールすると、いまダウンロードしたファイルはパッケージに
含まれるものに置き換わり、元のファイルは xcp-hl.repo.rpmorig として
残ります。両者の違いは署名鍵をどこから読むかだけです。ダウンロードした方は
HTTPS で取得し、パッケージに含まれる方はパッケージが入れるローカルの鍵を
使います。
新しい ISO には最初から xcp-hl-release が入っているため、この手順は
必要ありません。
前のバージョンに戻す
各リポジトリは直近のリリースだけを公開しているため、戻せる範囲はそれに 限られます。以前のビルドに戻すには次のようにします。
yum --showduplicates list xo-lite-ce
yum downgrade xo-lite-ce-<バージョン>XOA-hl(管理 UI)のアップデート
Xen Orchestra で行う
アップデートのページを開きます。 XOA-hl の Web 画面で
Settings > XOA-HL Updatesを開きます。インストールされている バージョンが表示されます。一度も確認していないうちは、状態は Update status unknown です。
Check for update をクリックします。 アップデートがあるパッケージが、 バージョンとともに一覧で表示されます。

Update now をクリックします。 アップデートのログが、進行に合わせて ページに流れます。アップデートの途中で xo-server が再起動するため、 ページには一時的に Reconnecting と表示され、その後は自動で続きます。
ce20 の管理用更新処理では Node.js を除外します。Update now はxoa-hlだけでなく、AlmaLinux やカーネルを含め、 アプライアンスで保留中のすべてのパッケージをインストールします。完了です。 アップデートが終わったらもう一度確認してください。 ページに Up to date と表示されます。

コマンドラインで行う
アプライアンス上で次のように実行します。
dnf check-update # 何が利用できるか
dnf update xoa-hl # アプライアンスのアプリケーションのみ
dnf update --exclude=nodejs # アプリケーションと AlmaLinux のベースをまとめて仕組み
アプライアンスには専用の yum リポジトリがあり、xoa-hl パッケージ自身が
提供する /etc/yum.repos.d/xoa-hl.repo で定義されています。
| リポジトリ ID | 内容 | 公開元 |
|---|---|---|
xoa-hl | xoa-hl | xoa-hl |
アップデートのページにある 2 つのボタンは、それぞれ次の systemd ユニットを 起動します。
| ユニット | 役割 |
|---|---|
xoa-hl-check-update.service | dnf check-update を実行し、結果を /run/xoa-hl/status に書き込みます |
xoa-hl-update.service | dnf -y --refresh --exclude=nodejs update をすべて実行し、ログを /var/lib/xoa-hl/update.log に書き込みます |
自動チェックと自動更新
xoa-hl リリース v5.113.2_e281c536-ce20 では、Settings → XOA-HL Updates → Automatic updates で 3 つのモードを選べます。
| モード | 動作 |
|---|---|
| Manual only | 管理者がチェックとインストールを開始します。これが既定です。 |
| Check automatically | 定期チェックで状態を更新します。インストールは手動です。 |
| Install automatically | 明示的な確認後、指定したメンテナンス時間にチェックとインストールを行います。 |
頻度、曜日(毎週の場合)、ローカル開始時刻を選び、保存します。時刻はアプライアンスのタイムゾーンを使用し、ランダムな遅延なしで設定時刻に実行します。v5.113.2_e281c536-ce40 以降、失敗した自動実行はページに赤いバナーで表示されます。RPM のインストールや更新によって自動インストールが有効になることはありません。古いパッケージにはこの設定がない場合があるため、まずインストール済みバージョンを確認してください。
管理用の更新処理は Node.js を対象から除外し、対応するメジャーバージョンを維持します。更新により xo-server などのサービスが再起動する場合があります。VM の自動再起動は行いません。実行できなかったインストールを次回起動直後に実行することもありません。結果を確認し、必要な再起動は管理者が計画してください。コマンドライン設定と診断についてはバージョン固定のスケジュール設定資料をご覧ください。
前のバージョンに戻す
現在有効なリポジトリに古いパッケージがあるかを確認できます。
dnf --showduplicates list xoa-hl利用できるパッケージは変わります。v5.113.2_e281c536-ce40 では、パッケージのダウングレードと異なるバージョン間の設定復旧は、アプライアンス復旧手順として未検証です。ダウングレードはベース OS の更新を取り消さず、XO データや独自のファイルも復元しません。ロールバックを計画する前に、設定ガイドに従ってエクスポートと隔離した復旧テストを準備してください。
検証と信頼
XCP-hl と XOA-hl のどちらのパッケージとリポジトリのメタデータも、XCP-hl の
GPG 鍵で署名しています。クライアント側の設定は repo_gpgcheck=1 と
gpgcheck=0 です。
RPM は主鍵ではなく GPG のサブキーで署名しています。ここには XCP-ng 8.3
のホスト側にある rpm ツール(バージョン 4.11)の既知の制限があります。
鍵をインポートしたときに主鍵しか登録しないため、サブキーによる署名は
NOKEY と報告され、署名自体は正しくてもパッケージを直接検証できません。
そこで信頼はリポジトリのメタデータを経由します。サブキーを理解できる本来の
GPG ツールが repomd.xml を検証します。このファイルには primary.xml の
チェックサムが記録され、primary.xml にはすべてのパッケージの
チェックサムが記録されています。つまり repomd.xml という 1 つのファイルを
検証すれば、リポジトリ内のすべての RPM を検証したことになります。
既知の制限事項
v5.113.2_e281c536-ce40 で確認したアプライアンスの範囲では、中断後の復旧とダウングレードは使い捨て環境での検証が必要です。結果確認と再起動の判断は保守ガイドを参照してください。