ローカルYumミラーの設定

ローカルyumリポジトリとして機能するシステムは、パブリックOracle Linux yumサーバーからリポジトリをミラー化します。

このシステムにOracle Linuxがインストールされると、そのシステムにはシステムのOSに必要なリポジトリが自動的に含まれます。そうしたリポジトリは、システムの/etc/yum/repos.dディレクトリにあります。リポジトリは、個別の/etc/yum/repos.d/*.repoファイルで定義されています。

そのようなデフォルト・リポジトリをミラーリングすることで、システムはローカルyumサーバーとして機能して、ミラーと同じOSとプラットフォームのクライアントにサービスを提供できます。

ただし、そのローカルyumミラーで、その他のプラットフォーム用の異なるOSリリースを使用するクライアントにサービスを提供することもできます。この場合は、該当するクライアントが必要とする他のリポジトリの定義が必要になります。

ローカルYumサーバーの構成方法

ローカルyumサーバーとして機能するようにシステムを設定するには、パブリックOracle Linux yumサーバーから必要なリポジトリをミラーリングする必要があります。

yumミラーは、ローカル・ディストリビューション・ミラーの前提条件で説明されている要件を満たす必要があります。また、ディストリビューション・ミラーの設定方法の手順を完了している必要もあります。

Oracle Linux yumサーバーで使用可能なリポジトリは、リポジトリの定義が/etc/yum.repos.dで構成されていればミラーリングできます。すでにシステムで使用可能なリポジトリのミラーリングは複雑ではありません。ただし、それ以外のリポジトリの場合は、どのリポジトリをミラーリングするかについて、より具体的に指定する必要があります。さらに、他のリポジトリ構成が必要になることもあります。

  1. 現在のシステムのすべての有効なリポジトリをベース・ディレクトリにミラーリングします。
    sudo dnf reposync --delete --download-metadata -p /var/www/html/yum 
    --delete

    アップストリームで削除されたパッケージをミラーから削除します。このオプションを使用するようにお薦めします。

    --download-metadata

    すべてのリポジトリ・メタデータを同期に含めます。

    このコマンドを初めて実行する場合は、プロセスの完了までに時間がかかることがあります。このプロセスが終了した時点で、互換性のあるOSとプラットフォームのクライアント・システムに、パッケージを提供するミラーとしての準備が整います。
  2. 異種環境のクライアントに対応するリポジトリをホストするようにローカル・ミラーを設定します。
    1. 混合クライアントに必要なリポジトリを作成します。

      サーバーが最新のOracle Linux 8リリースを実行しているときに、Oracle Linux 9とOracle Linux 7のクライアントにパッケージを提供する必要があるとします。次のようにします。

      • 次の例のようなエントリで、/etc/yum.repos.d/9-mirror.repoを作成します。

        [ol9_baseos_latest]
        name=Oracle Linux 9 BaseOS Latest  ($basearch)  
        baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL9/baseos/latest/$basearch/
        gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
        gpgcheck=1
        enabled=0
        
        [ol9_appstream]
        name=Oracle Linux 9 Application Stream Packages ($basearch) 
        baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL9/appstream/$basearch/
        gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
        gpgcheck=1
        enabled=0
      • 次の例のようなエントリで、/etc/yum.repos.d/7-mirror.repoを作成します。

        [ol7_latest]
        name=Oracle Linux 7 Latest ($basearch)
        baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL7/latest/$basearch/
        gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
        gpgcheck=1
        enabled=0
        
        [ol7_optional_latest]
        name=Oracle Linux $releasever Optional Latest ($basearch)
        baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL7/optional/latest/$basearch/
        gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
        gpgcheck=1
        enabled=0
        
        [ol7_addons]
        name=Oracle Linux $releasever Add ons ($basearch)
        baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL7/addons/$basearch/
        gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
        gpgcheck=1
        enabled=0

      それぞれのリリースの完全なyum構成は、https://yum.oracle.com/mirror/で入手できます。適切なディストリビューションとアーキテクチャに移動して、該当する*.repoファイルをダウンロードします。

      重要:

      これらのリポジトリのパッケージがローカルyumミラー自体にインストールされないように、すべてのエントリにenabled=0が必要です。

    2. *.repoファイル内の各リポジトリをベース・ディレクトリにミラー化します。
      sudo dnf reposync --repoid ol9_baseos_latest --delete --download-metadata -p /var/www/html/yum
      ...
      sudo dnf reposync --repoid ol97_latest --delete --download-metadata -p /var/www/html/yum
      ...
  3. cronスクリプトまたはsystemdタイマー・ユニットを使用して、ミラーリングされたリポジトリからの通常のクライアント・パッケージ更新を自動化します。
    たとえば、次の内容で/etc/cron.daily/yum-mirror-updateにファイルを作成します。
    #!/bin/bash
    # Regularly update yum repos
    dnf reposync --delete --download-metadata -p /var/www/html/yum
    ファイルが実行可能であることを確認します。
    sudo chmod +x /etc/cron.daily/yum-mirror-update
    • yumミラーサービスが混在するクライアントの場合は、スクリプトを次のように変更します。

      #!/bin/bash
      
      REPOS=(repo-IDs)
      
      for REPO in ${REPOS[@]}
      do
          dnf reposync --repo=$REPO --delete --download-metadata -p /var/www/html/yum 
      done

      repo-IDsは、ミラーのすべてのクライアントが必要とするリポジトリのIDのカンマ区切りリストを表します。それらのIDは、該当するクライアント用に作成した対応する/etc/yum.repos.d/*.repoファイルに含まれています。この手順例では、repo-IDsは、ミラーと互換性のあるクライアント用のOracle Linux 8リポジトリを表します。さらに、その他のクライアント用に、ol9_baseos_latest, ol9_appstream, ol7_latest, ol7_optional_latest,ol7_addonsなどを含めます。

  4. 該当するリポジトリにアクセスするように、クライアントを適切に構成します。

rsyncを使用してOracle Linux Yumサーバーをミラー化する方法

Oracleは、Oracle Linux yumサーバーのURL構造に直接マップするyum-rsync.oracle.comドメインでOracle Linux yumサーバー・リポジトリへのrsyncインタフェースを提供します。

ローカル・ディストリビューション・ミラーの前提条件」の説明に従って、要件を満たす必要があります。また、「ディストリビューション・ミラーの設定方法」に示した手順を完了する必要もあります。

rsyncインタフェースを使用すると、複雑なシステム構成を必要とせずに、Oracle Linux yumサーバーを簡単にミラーリングして、より広い用途に使用できます。この方法は、すべてのアーキテクチャのリポジトリ構造全体をミラーリングする必要がある大企業に有効です。rsyncインタフェースは、ミラー化されたリポジトリを同期するreposyncコマンドを実行するための代替方法です。

  1. システムにrsyncをインストールします。
    sudo dnf install -y rsync
  2. rsyncクライアントを使用して、ミラーリングするリポジトリをすべてミラーリングします。

    たとえば、すべてのアーキテクチャのすべてのOracle Linux 8リポジトリをミラーリングするには、rsync://yum-rsync.oracle.com/repo/OracleLinux/OL8/エンドポイントですべてを再帰的にミラーリングできます。

    rsync -arv rsync://yum-rsync.oracle.com/repo/OracleLinux/OL8 /var/www/html/yum/
    より具体的なURLを指定することで、特定のアーキテクチャの特定のリポジトリをミラーリングできます。たとえば、x86_64アーキテクチャの現在のOracle Linux 9 baseosリポジトリをミラーリングするには、次のように入力します。
    mkdir -p /var/www/html/yum/OL9/baseos/latest
    rsync -arv rsync://yum-rsync.oracle.com/repo/OracleLinux/OL9/baseos/latest/x86_64 /var/www/html/yum/OL9/baseos/latest/

ISOからリポジトリをミラー化する方法

ローカルyumミラーは、ISOイメージからリポジトリをミラー化して、クライアントが使用できるように構成できます。

ローカル・ディストリビューション・ミラーの前提条件」の説明に従って、要件を満たす必要があります。また、ディストリビューション・ミラーの設定方法に示した手順を完了する必要もあります。

このタスクでは、Oracle Linux 8イメージからリポジトリをミラーリングしていることを前提としています。また、ミラーへのアクセスを許可するために、Webサーバーを使用していることも前提としています。

  1. 適切な場所にISOイメージをマウントして、その内容をコピーできるようにします。
    sudo mount -o loop,ro OL8.iso /mnt
  2. リポジトリをホストするディレクトリをISOから作成します。
    sudo mkdir -p /var/www/html/yum/8_ISO
  3. 新しいディレクトリにISOからリポジトリをコピーします。
    sudo cp -r /mnt/BaseOS /var/www/html/yum/8_ISO/
    sudo cp -r /mnt/AppStream /var/www/html/yum/8_ISO/
  4. 該当するリポジトリにアクセスするように、クライアントを適切に構成します。