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

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

注記

RHEL 8.5 リリース以前では、リポジトリーオーバーライドの名前は rhel-8.json です。RHEL 8.5 以降、名前はマイナーバージョン (rhel-84.jsonrhel-85.json など) も尊重します。

前提条件

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

手順

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

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

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

  4. 次の例のような構造を JSON ファイルに追加します。

    {
        "<ARCH>": [
            {
                "name": "baseos",
                "metalink": "",
                "baseurl": "http://mirror.example.com/composes/released/RHEL-8/8.0/BaseOS/x86_64/os/",
                "mirrorlist": ["url1","url2",…​,"urln"],
                "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\n (…​)",
                "check_gpg": true,
                "metadata_expire": ""
            }
        ]
    }

    次の属性から 1 つだけ指定します。

    • metalink - リポジトリーリンクの可用性とエラー修正を向上させます。
    • mirrorlist - パッケージリポジトリーを指す URL のリスト。
    • baseurl - インストールに必要なパッケージを含むリポジトリーへのリンク。

      残りのフィールドは任意です。

      1. または、ディストリビューションの JSON ファイルをコピーできます。

        1. 作成したディレクトリーにリポジトリーファイルをコピーします。次のコマンドで、rhel-version.json をご使用の RHEL バージョン (例: rhel-8.json) に置き換えます。

          $  cp /usr/share/osbuild-composer/repositories/rhel-version.json /etc/osbuild-composer/repositories/
  5. テキストエディターを使用して、rhel-8.json ファイルの baseurl パスを編集し、保存します。以下に例を示します。

    $ vi /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 を指していることが分かります。