まず、フェンシング機能を備えたサポート対象のSLES 15 HAクラスタを構築します。
SLE HAを登録し、SLES 15ノードをブートストラップした後、フェンシング、クォーラム、およびテスト済みのサービスリソースを追加してから、フェイルオーバーに頼るようにしてください。
SLESでHTTP 500エラーが発生した場合はzypper refresh、まずどのリポジトリURLがエラーを返したかを特定してください。HTTP 500は、リクエストを処理するサーバーが予期しない状態に遭遇したことを意味します。応答元は、リポジトリホスト、組織のRMTサーバー、またはHTTPプロキシである可能性があります。ローカルメタデータをクリアする前に、障害が発生しているリポジトリを特定し、そのエンドポイントを修復または報告してください。強制キャッシュ再構築では、500エラーを返しているサーバーを修復することはできません。
SUSEの最新のSLES 15 SP7管理ガイドおよびアップグレードガイドには、リポジトリの一覧表示と更新コマンド(zypper refresh -fdbローカルリポジトリのメタデータ再構築コマンドを含む)が記載されています。しかし、SLES全体で発生しているHTTP 500エラーについては言及されていません。実際の解決策は、URLがSUSEカスタマーセンター、内部ミラー、またはサードパーティのリポジトリのいずれに属するかによって異なります。
まず、リポジトリのエイリアスとURLを記録します。SLESで、以下を実行します。
zypper repos -u
この-uオプションでは、設定済みの各リポジトリのオリジンが表示されます。有効化され、更新するように設定されているエントリを確認し、失敗したURLのホスト名を比較してください。SUSEの更新ソースが正常に更新される一方で、サードパーティのリポジトリが1つだけ失敗した場合は、そのリポジトリの所有者を調査してください。複数のリポジトリが同じ内部ホストを指していて、すべてが失敗した場合は、共有ミラー、RMTサービス、リバースプロキシ、またはそのアップストリーム接続に問題がある可能性が高いです。

次に、エイリアスを使用して影響を受けるリポジトリのみを更新します。
sudo zypper refresh -f 'Vendor-App'
Vendor-Appに表示されているエイリアスと完全に一致させてくださいzypper repos -u。これにより、無関係なリポジトリからのエラーが繰り返し表示されるのを防ぎ、管理者と共有できる絞り込まれた結果が得られます。エイリアスにスペースが含まれている場合は、シングルクォーテーションを残してください。ログやスクリーンショットを送信する前に、エラーが発生した正確なURLとタイムスタンプを保持し、埋め込まれたユーザー名、パスワード、トークン、その他の秘密情報を削除してください。

Zypperのエラーメッセージ全文を読み、そこに記載されている特定のメタデータURL(多くの場合、リポジトリのrepodataディレクトリ内のファイル)を特定してください。エンドポイントに認証情報なしでクエリを実行できる場合は、SLESホストからのHTTPレスポンスと比較してください。
curl -sS -D - -o /dev/null --max-time 20 "$METADATA_URL"
METADATA_URL認証情報を URL やコマンドラインに含めずに、失敗したメタデータ URL を正確に指定します。このコマンドはレスポンス ヘッダーを出力し、レスポンス ボディを破棄します。 のような結果HTTP/1.1 500は、リクエスト パス上のサーバーがエラーを返していることを示しますが、オリジンまたは中間サーバーがエラーを生成したかどうかは証明しません。Curl は Zypper とは異なる認証設定やプロキシ設定を使用する場合もあるため、これは比較として扱い、決定的な再現とは考えないでください。リポジトリへのアクセスに認証が必要な場合は、認証情報を公開するのではなく、組織で承認されたテスト方法を使用してください。

500 レスポンスは、ローカルのメタデータ キャッシュの問題とは異なります。また、DNS 障害、TLS 証明書エラー、タイムアウト、401 や 403 などの認証応答とも異なります。これらのメッセージには、それぞれ異なるチェックが必要です。500 を解消するために、TLS 検証を無効にしたり、リポジトリをプレーン HTTP に変更したり、キャッシュを繰り返し削除したりしないでください。HTTP のセマンティクスでは、RFC 9110 で 500 は、リクエストの処理を妨げた予期しないサーバー状態として定義されています。
ZypperまたはYaSTを使用してリポジトリの状態を確認および変更できます。たとえば、zypper modifyrepoドキュメントに記載されているコマンドを使用すると、エイリアスを指定してリポジトリを無効にできますが、これは一時的な運用上の措置であり、必要なソースの不具合を修復するものではありません。特にサービスパックの移行後は、生成されたリポジトリのURLを推測で編集することは避けてください。製品リポジトリとアップデートリポジトリはバージョン固有のパスを使用するためです。
サーバーまたはプロキシが有効な応答を返した後でなければ、有効になっているすべてのリポジトリを再試行しないでください。
sudo zypper refresh -f

エンドポイントが応答するようになったにもかかわらず、Zypperが依然として古いまたは矛盾したローカルリポジトリデータを報告する場合は、SUSEのSLES 15 SP7トラブルシューティングセクションで推奨されているように、メタデータの完全な更新とデータベースの再構築を次のように実行してください。
sudo zypper refresh -fdb
これにより、生のメタデータが強制的にダウンロードされ、Zypper のローカル解決可能データベースが再構築されます。これはローカルメタデータの問題解決に役立ちますが、500 エラーが継続する場合の解決策ではありません。リポジトリのメタデータの更新とアップデートのインストールを混同しないでください。更新が正常に完了してから、通常のパッチまたはアップデートコマンドを実行してください。
zypper refresh -f 'ALIAS'まず、以前エラーが発生していたソースに対して実行し、次にsudo zypper refresh -f有効になっているすべてのリポジトリに対して実行します。影響を受けるリポジトリのメタデータがHTTP 500エラーなしでダウンロードされ、Zypperが有効なソースのエラーなく完了すれば、修正が成功したと判断できます。それでも1つのソースがエラーとなる場合は、正確なURL、ステータスコード、レスポンスヘッダー、および時刻を記録し、そのエンドポイントの所有者に伝えてください。
SLE HAを登録し、SLES 15ノードをブートストラップした後、フェンシング、クォーラム、およびテスト済みのサービスリソースを追加してから、フェイルオーバーに頼るようにしてください。
Zypperの更新エラーの原因をSUSE、RMT、またはサードパーティのエンドポイントに特定し、重要なアップデートを無効にすることなく、適切なサーバー側またはキャッシュの修正を適用してください。
SUSE LVM シンプールのスペースエラーを解決するには、データとメタデータの使用状況を確認し、プールを安全に拡張し、障害の再発を防ぎます。
Btrfsが意図的に読み取り専用になっているのか、容量不足なのか、エラー発生後のデータ保護のために動作しているのかを特定し、その原因に合った復旧方法を選択してください。
ミラーリングされたチャネルを準備し、アクティベーションキーを作成し、マネージャーのチェックインに必要な接続を維持しながら、インターネットに直接アクセスできないSLES 15クライアントをブートストラップします。
YaSTのSSH経由のXIO起動エラーを修正し、X11転送とxauthを検証し、リモートウィンドウが不要な場合はncursesインターフェースに切り替えます。
アップデート前のBtrfsスナップショットを見つけて、読み取り専用でテストし、どのデータがルートロールバックの対象外になるかを理解した上で、Snapperを使用して永続的なリカバリを実行します。
SLESシステムのログを、認証済みTLS経由でリモートのrsyslogコレクターに送信します。この際、証明書のチェック、障害発生時のバッファリング、および配信テストが行われます。
RAM、スワップ、カーネル、およびZypperのログを使用して、実際のメモリ負荷を特定し、パッケージの状態を保護し、より安全なSLESアップグレードの再試行を選択します。
DebianのSSH経由の自動セキュリティアップデートを有効にし、デフォルトのパッケージソースを維持し、systemdとAPTのログを通じてスケジュールされた実行を確認します。