3.5. システムリポジトリーのオーバーライド

/etc/osbuild-composer/repositories ディレクトリーで、RHEL Image Builder 用のリポジトリーオーバーライドを独自に設定できます。

前提条件

  • ホストシステムからアクセスできるカスタムリポジトリーがある。

手順

  1. リポジトリーのオーバーライドを保存する /etc/osbuild-composer/repositories/ ディレクトリーを作成します。

    $ sudo mkdir -p /etc/osbuild-composer/repositories
  2. RHEL バージョンに対応する名前を使用して、JSON ファイルを作成します。または、配布用のファイルを /usr/share/osbuild-composer/ からコピーして、その内容を変更することもできます。

    RHEL 9.3 の場合は、/etc/osbuild-composer/repositories/rhel-93.json を使用します。

  3. 次の構造を JSON ファイルに追加します。次の属性から 1 つだけ文字列形式で指定します。

    • baseurl - リポジトリーのベース URL。
    • metalink - 有効なミラーリポジトリーのリストを含む metallink ファイルの URL。
    • mirrorlist - 有効なミラーリポジトリーのリストを含む mirrorlist ファイルの URL。gpgkeymetadata_expire などの残りのフィールドはオプションです。

      以下に例を示します。

      {
           "x86_64": [
              {
                  "name": "baseos",
                  "baseurl": "http://mirror.example.com/composes/released/RHEL-9/9.0/BaseOS/x86_64/os/",
                  "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\n (…​)",
                  "check_gpg": true
              }
          ]
      }

      あるいは、rhel-version.json を RHEL のバージョン (例: rhel-9.json) に置き換えて、ディストリビューション用の JSON ファイルをコピーすることもできます。

      $  cp /usr/share/osbuild-composer/repositories/rhel-version.json /etc/osbuild-composer/repositories/
  4. オプション: JSON ファイルを確認します。

    $ json_verify  /etc/osbuild-composer/repositories/<file>.json
  5. rhel-9.json ファイル内の baseurl パスを編集して保存します。以下に例を示します。

    $ /etc/osbuild-composer/repositories/rhel-version.json
  6. osbuild-composer.service を再起動します。

    $ sudo systemctl restart osbuild-composer.service

検証

  • リポジトリーが正しい URL を指しているか確認します。

    $ cat /etc/yum.repos.d/redhat.repo

    リポジトリーは /etc/yum.repos.d/redhat.repo ファイルからコピーされた正しい URL を指していることが分かります。