Azure VMのyumで「Failed to download metadata for repo ‘rhel-8-for-x86_64-baseos-eus-rhui-rpms’」が発生する場合の対応

はじめに

Azure VMにおいて、yumコマンド実行時にFailed to download metadata for repo 'rhel-8-for-x86_64-baseos-eus-rhui-rpms'というエラーが発生することがあります。

本記事では、上記のエラーの内容と対処法について紹介します。

エラーの内容

Azure VM上でyum installyum updateなどを実行した際に以下のエラーが発生することがあります。

Error: 
  Failed to download metadata for repo 'rhel-8-for-x86_64-baseos-eus-rhui-rpms': 
    Cannot download repomd.xml: 
    Cannot download repodata/repomd.xml: 
    All mirrors were tried

このエラーメッセージは、rhel-8-for-x86_64-baseos-eus-rhui-rpmsからreponmd.xmlのダウンロードに失敗したということを示します。

rhel-8-for-x86_64-baseos-eus-rhui-rpmsとは

rhel-8-for-x86_64-baseos-eus-rhui-rpmsは、RHUIを採用したRed Hat Enterprise Linux 8の向けのパッケージ管理システムのことで、yumを使ってVMにパッケージソフトをインストールする際に利用されます。

RHUI

Red Hat Update Infrastructure (RHUI) とは、RHEL用のパッケージの配信することができる仕組み(フレームワーク)のことです。
通常、OSがRHELの場合、yumでパッケージをインストールするときは、Red Hatの公式リポジトリからパッケージを取得します。
しかし、セキュリティ上の要件やネットワークの制約などの理由から、インターネットへの直接アクセスを制限する必要があるケースもあります。
このような場合、RHUIを使用することで、Red Hat社がホストしているパッケージリポジトリを自社のプライベートクラウド内のミラーリングリポジトリにクローンし、内部ネットワークでのアクセスを可能にします。
Microsoftなどのクラウドプロバイダーにおいても、RHUIを使用しており、Red Hatがホストするリポジトリをミラーリングし、ミラーリングした独自のリポジトリからAzure VMにパッケージを配信しています。

repomd.xml

repomd.xmlは、リポジトリメタデータを示し、yumなどのパッケージマネージャーがリポジトリ内のパッケージ情報を取得するために使用されるXML形式のファイルです。

今回のエラーでは、Microsoftから提供しているパッケージ管理システムであるrhel-8-for-x86_64-baseos-eus-rhui-rpmsから、リポジトリのメタデータがであるrepomd.xmlがダウンロードできないため、 yumでパッケージのインストールや、アップデートができずエラーになっています。

エラーの原因と対応

Azure公式ドキュメントによると、Azure RHUI証明書は通常、2年ごとに期限切れになります。
この期限切れが原因で、yumの実行時に今回のエラーが発生することがあります。

Azure公式ドキュメント

証明書の期限が切れている場合、証明書更新をすることによって、このエラーが解決する可能性があります。
MicrosoftのRHUIパッケージには、更新された証明書があるため、yumコマンドを実行して、RHUI パッケージを更新することができます。

sudo yum update -y --disablerepo='*' --enablerepo='*microsoft*'

上記コマンドのオプションの意味は以下になります。

  • --disablerepo='*' : 全てのリポジトリを無効化します。 → これにより、現在有効なすべてのリポジトリが一時的に無効になります。

  • --enablerepo='*microsoft*' : “microsoft"という文字列を含むリポジトリを有効化します。 → つまり、“microsoft"を含むリポジトリだけが使用され、他のリポジトリは無効化されます。

おわりに

この記事では、yumコマンド実行時のFailed to download metadata for repo 'rhel-8-for-x86_64-baseos-eus-rhui-rpms'というエラーについて紹介しました。

  • rhel-8-for-x86_64-baseos-eus-rhui-rpmsはRedhat Enterprise Linux8用のパッケージ管理システム
  • RHUIとは、RHEL用のパッケージの配信することができるフレームワーク
  • repomd.xmlはリポジトリメタデータを格納したファイル
  • Azure RHUI証明書は2年ごとに期限切れになり、yumの実行時にrepomd.xmlのインストールができなくてエラーになる
  • yum updateでMicrosoftのRHUIパッケージを更新すると、証明書も更新され、エラーが解消される可能性がある
本サイトへのご意見、お問い合わせなどありましたらこちらからご連絡下さい。 お問合せフォーム