6 ソフトウェア・ディストリビューション・ミラーの使用

ディストリビューション・ミラーとは、Oracle Linux yumサーバーまたはUnbreakable Linux Networkのリポジトリへのソフトウェア・パッケージの代替ソースです。これは、パブリック・サーバーからローカルにレプリケートするように選択したリポジトリです。ローカル・リポジトリは、ローカル・ネットワークに存在するクライアント・システムのためのパッケージ・ソースになります。

ディストリビューション・ミラーは複雑なインフラストラクチャで有用であり、ミッション・クリティカルな本番環境で制御された更新戦略を策定する際に重要です。ディストリビューション・ミラーは、次のサービスを提供するために配備します。

  • パブリック・ネットワークにアクセスできないシステムの、yumリポジトリまたはULNチャネルへのアクセスの提供。
  • ソフトウェアのダウンロード時間の短縮と、大規模なインフラストラクチャの帯域幅オーバーヘッドの削減
  • ネットワークベースのインストール・インフラストラクチャの設定
  • 本番システムに更新を実装する前に、制御されたソフトウェア・ディストリビューション環境に対してテストを実行できるスナップショット・スタイルの更新戦略への対応。

ソフトウェア・ディストリビューション・ミラーとして機能するサーバーには、yumリポジトリまたはULNチャネルのどちらかが格納されています。リポジトリまたはチャネルは、ローカルWebサーバーやファイル転送サーバーなどの各種の方法を介して、内部ネットワーク内のクライアント・システムから利用できます。

ソフトウェア・ディストリビューション・ミラーは、公式のOracle Linuxソースと同期していることが必要です。必要な場合は、戦略的な間隔で同期が発生するように制御できるため、すべてのインフラストラクチャにロールアウトする前に、既知のパッケージ・バージョンのセットに対してシステムの更新をテストできます。

ノート:

ULNチャネルのローカル・サーバーでのミラーリングを検討している場合は、Spacewalkオープン・ソース・ソフトウェアに基づいた、Oracle Linux Managerも確認してください。Oracle Linux Managerには、システムのメンテナンス、インストールおよびパッケージ管理に役立つツールが備わっています。詳細は、Oracle® Linux Manager & Spacewalk for Oracle® Linuxドキュメントを参照してください。

ローカル・ディストリビューション・ミラーの前提条件

ローカル・ディストリビューション・ミラーとして設定するシステムは、次の基準を満たしている必要があります。

  • 公式のOracle Linuxソースに接続するために、インターネットにアクセスできることが必要です。
  • yumメタデータを作成するためのメモリーが6GB以上あること。

  • システム・クライアントによるミラー化されたリポジトリへのアクセスを提供するように構成する必要があります。

  • ホストしているパッケージのコピーを格納するのに十分なディスク領域があること。

    必要なディスク領域を計算する際には、次の事項について考慮してください。

    • ディスク領域の要件は、ミラー化するリポジトリまたはチャネルに応じて異なります。他の要因はサービスの対象となるクライアントの数で、クライアントのプラットフォーム、オペレーティング・システム、各クライアントが使用している可能性があり更新が必要になるその他の特定のパッケージが含まれます。

    • ミラーに使用されるディスク領域は消費されるのみで、解放されることはありません。このためディスク要件は静的ではなく、時間の経過とともに増加する可能性があります。

    • リポジトリまたはチャネル内のパッケージも定期的に更新され、ローカルyumサーバーのストレージ要件にさらに影響します。

    ディスク・サイズ要件を見積もる際のガイダンスのために、次のコマンドを実行します。

    sudo dnf repoinfo [repo-ID]

    コマンド出力の一部に、特定のリポジトリのサイズが含まれています。次に例を示します。

    ...
    Repo-id            : ol8el8_x86_64_baseos_latest
    ...
    Repo-size          : 29 G
    ...
    
    Repo-id            : ol8el8_addons
    ...
    Repo-size          : 4.8 G
    ...

    リポジトリは動的に時間の経過とともに増大するため、常にRepo-sizeに示されたディスク領域よりも十分に大きな領域を割り当てるようにしてください。オプションとして、専用のファイル・システムを作成して、ミラー化されたリポジトリをホストするディレクトリにマウントすることもできます。

ディストリビューション・ミラーの設定方法

ローカル・ネットワーク内のクライアントがインターネット経由でパブリック・サーバーにアクセスする必要なしに、パッケージを配布してクライアント・システムに更新を提供するようにシステムを構成できます。

ミラー・サーバー内のローカル・リポジトリへのアクセスを提供する方法は、任意に選択できます。このタスクでは、HTTPを例として使用します。

  1. システムに最新バージョンのyum-utilsがインストールされていることを確認します。
    sudo dnf install -y yum-utils
  2. Apache HTTPサーバーをインストールします。
    sudo dnf install -y httpd
  3. ローカル・リポジトリ用のベース・ディレクトリを作成します。次に例を示します。
    sudo mkdir -p /var/www/html/yum

    ベース・ディレクトリは、どの場所に作成してもかまいません。ただし、リポジトリの所有者には、その場所に対する読取り権限と書込み権限が必要です。

  4. ミラーのために専用ファイル・システムを作成した場合は、そのファイル・システムをベース・ディレクトリにマウントします。
  5. ベース・ディレクトリを/var/www/htmlと異なる場所に作成した場合は、そのリポジトリを指すシンボリック・リンクを/var/www/htmlに作成します。
    たとえば、ベース・ディレクトリが/var/yumの場合は、次のように入力します。
    sudo ln -s /var/yum /var/www/html/yum
  6. SELinuxが強制モードで有効化されている場合は、次のステップを実行します。
    1. リポジトリ・ルート・ディレクトリ階層のデフォルト・ファイル・タイプをhttpd_sys_content_tとして定義します。
      sudo /usr/sbin/semanage fcontext -a -t httpd_sys_content_t "/var/repos(/.*)?"
    2. このファイル・タイプをリポジトリ全体に適用します。
      sudo /sbin/restorecon -R -v /var/yum
  7. HTTPサーバーの構成ファイル/etc/httpd/conf/httpd.confを次のように編集します。
    1. サーバーの解決可能なドメイン名またはIPアドレスをServerNameの引数に指定します。
      ServerName system-mirror:80
    2. <Directory "/var/www/html">セクションで、Optionsディレクティブの設定でIndexesFollowSymLinksが指定されていることを確認します。次に例を示します。
      Options Indexes FollowSymLinks
      この設定により、ディレクトリ階層を参照できるようになります。
  8. HTTPサーバーを起動して、再起動後に開始するように構成します。
    sudo systemctl start httpd
    sudo systemctl enable httpd
  9. システムでファイアウォールを有効にしている場合は、TCPポート80でHTTP接続リクエストを受信できるように構成します。
    sudo firewall-cmd --add-service=http
    sudo firewall-cmd --permanent --add-service=http
  10. ローカル・ミラーがローカル・ネットワーク内のクライアントにサービスを提供する方法を選択します。
  11. ローカルYumミラーの設定の説明に従って、引き続きローカルyumミラーとしてシステムを設定します。

ローカル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
        [el9_baseos_latest]
        name=Oracle Linux 9 BaseOS Latest  ($basearch)  
        baseurl=https://yum.example.com/repo/EnterpriseLinux/EL9/baseos/latest/$basearch/
        gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY
        gpgcheck=1
        enabled=0
        
        [el9_appstream]
        name=Oracle Linux 9 Application Stream Packages ($basearch) 
        baseurl=https://yum.example.com/repo/EnterpriseLinux/EL9/appstream/$basearch/
        gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY
        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
        [el7_latest]
        name=Oracle Linux 7 Latest ($basearch)
        baseurl=https://yum.example.com/repo/EnterpriseLinux/EL7/latest/$basearch/
        gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY
        gpgcheck=1
        enabled=0
        
        [el7_optional_latest]
        name=Oracle Linux $releasever Optional Latest ($basearch)
        baseurl=https://yum.example.com/repo/EnterpriseLinux/EL7/optional/latest/$basearch/
        gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY
        gpgcheck=1
        enabled=0
        
        [el7_addons]
        name=Oracle Linux $releasever Add ons ($basearch)
        baseurl=https://yum.example.com/repo/EnterpriseLinux/EL7/addons/$basearch/
        gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY
        gpgcheck=1
        enabled=0

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

      重要:

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

    2. *.repoファイル内の各リポジトリをベース・ディレクトリにミラー化します。
      sudo dnf reposync --repoid el9ol9_baseos_latest --delete --download-metadata -p /var/www/html/yum
      ...
      sudo dnf reposync --repoid el9ol97_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リポジトリを表します。また、他のクライアントには、el9_baseos_latestel9_appstreamel7_latestel7_optional_latestel7_addonsol9_baseos_latestol9_appstreamol7_latestol7_optional_latestol7_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 OL8EL8.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. 該当するリポジトリにアクセスするように、クライアントを適切に構成します。

ローカルULNミラーの設定

ローカルULNサーバーとして機能するシステムでは、Unbreakable Linux Networkのチャネルをミラーします。

Oracle LinuxシステムをULNに登録すると、システムのOSリリースとアーキテクチャに応じて、そのシステムがULNのデフォルト・チャネルに自動的にサブスクライブされます。そのため、そのシステムはOSとプラットフォームがミラーと同じクライアントにサービスを提供するミラーになれます。

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

ノート:

多くの場合、ULNチャネルのミラー化はyumリポジトリのミラー化よりも遅くなります。Oracle Linux yumサーバーでは使用できないチャネルのULNミラーの作成のみを検討してください。可能な場合は、かわりに Oracle Linux yumサーバー・リポジトリのミラーを設定します。

ローカルULNミラーの構成方法

ローカルULNミラーにするためにシステムを設定するには、Unbreakable Linux Networkからチャネルをレプリケートする必要があります。

指定されたULNミラーは、「ローカル・ディストリビューション・ミラーの前提条件」で説明されている要件を満たす必要があります。さらに、次のタスクを実行しておく必要もあります。

この手順の各ステップでは、ULN Webインタフェースまたはuln-channelコマンドのどちらかを使用できます。uln-channelコマンドで使用できるオプションを表示するには、uln-channel -hと入力します。

  1. システムをyumサーバーとして有効にします。

    yumサーバーとして、システムはシステム自体のOSとプラットフォーム以外のOSバージョンとプラットフォームのチャネルをサブスクライブできます。

    • ULN Webインタフェースの使用

    1. ブラウザで、適切な資格証明を使用して、https://linux.oracle.comにログインします。
    2. 「システム」タブで、ULNミラーにするシステムの名前付きリンクをクリックします。
    3. 「システム詳細」ページで、「編集」をクリックします。
    4. 「システム・プロパティの編集」ページで、Yumサーバーのチェック・ボックスを選択します。
    5. 「変更を適用」をクリックします。
    • uln-channelコマンドの使用

    1. システムの端末ウィンドウで、次を入力します。
      sudo uln-channel --enable-yum-server
    2. プロンプトが表示された場合は、適切なULNのユーザー名とパスワードを指定します。
  2. ミラーするチャネルにシステムにサブスクライブします。
    • ULN Webインタフェースの使用

    1. 指定したULNミラーの「システム詳細」ページで、「サブスクリプションの管理」をクリックします。
    2. 「システム・サマリー」ページで、利用できるチャネルまたはサブスクライブ済のチャネルのリストからチャネルを選択し、矢印をクリックすると、チャネルをリスト間で移動できます。

      ノート:

      Oracle Linux Supportアカウントがあり、ローカルKsplice OfflineクライアントのKspliceパッケージをミラーでホストする場合は、サポートするアーキテクチャとOracle LinuxリリースのKsplice for Oracle Linuxチャネルにサブスクライブします。

    3. チャネルの選択を完了したら、「サブスクリプションの保存」をクリックします。
    • uln-channelコマンドの使用

    1. システムの端末ウィンドウで、次を入力します。
      sudo uln-channel -a -c channel [-c channel …]
    2. プロンプトが表示された場合は、適切なULNのユーザー名とパスワードを指定します。
    3. (オプション)サブスクリプションが正常に完了したことを確認する場合は、次のように入力します。
      sudo uln-channel -l
  3. その他のミラー化したリポジトリが更新されるときに、システム独自のリポジトリを保護します。
  4. dnf reposyncコマンドを使用して、ULNチャネルをミラー用のベース・ディレクトリの場所にミラーリングします。
    sudo dnf reposync --delete --download-metadata -p /var/www/html/yum
    このコマンドを定期的に実行するために、cronスクリプトまたはsystemdサービスおよびタイマーを作成することを検討してください。たとえば、/etc/cron.daily/uln-mirror-updateに次の内容のファイルを作成します。
    #!/bin/bash
    # Regularly update yum repos
    dnf reposync --delete --download-metadata -p /var/www/html/yum
    ファイルが実行可能であることを確認します。
    sudo chmod +x /etc/cron.daily/uln-mirror-update

ULNミラーのサブスクリプションのローカライズ方法

ULNミラーのチャネル・サブスクリプションをローカライズすることで、パッケージの衝突やパッケージ依存関係の損傷を引き起こすようなミラーのパッケージ更新を防止します。

ローカルULNミラーの構成方法」の説明に従って、各種のプラットフォームで各種のOSバージョンを実行しているクライアントにサービスを提供するために必要なチャネルをサブスクライブしていることを確認します。

このタスクは、異種環境のクライアントにサービスを提供するULNミラーに必要です。この場合は、ミラー自体には不要なチャネルを含めて、複数のチャネルをミラーがサブスクライブします。ミラーは、そのミラー独自のチャネル・サブスクリプションが、その他のクライアントを対象にしているパッケージで更新されないようにする必要があります。

たとえば、Oracle Linux 9システムのミラーで、x86_64プラットフォームのOracle Linux 8クライアントにもサービスを提供しているとします。次のステップでは、Oracle Linux 9のチャネル・サブスクリプションをローカライズします。

  1. サーバーがサブスクライブされているチャネルを識別します。
    sudo dnf repolist
    ...
    ol8_addons                       Oracle Linux 8 Addons (x86_64)
    ol8_appstream                    Oracle Linux 8 Application Stream (x86_64)
    ol8_baseos_latest                Oracle Linux 8 BaseOS Latest (x86_64)
    ...

    システム独自のOracle Linux 9チャネルに加えて、この出力にはクライアント向けのOracle Linux 8チャネルが含まれています。

  2. サーバーに適用できないリポジトリの更新を無効にするために、/etc/dnf/plugins/spacewalk.confを編集します。

    次の形式で入力します。

    [repo_id]
    enabled=0

    現在の例では、ファイルで次のように指定します。

    [ol8_addons]
    enabled=0
    
    [ol8_appstream]
    enabled=0
    
    [ol8_baseos_latest]
    enabled=0

    ノート:

    その後で、ULNの非互換の別のチャネルにシステムをサブスクライブする場合は、そのチャネルも/etc/dnf/plugins/spacewalk.confで無効にする必要があります。

  3. ミラーをそれ自体のクライアントとして構成します。

ローカル・ミラーへのクライアント・アクセスの構成方法

クライアントは、更新とエラッタ修正を受信するために、ローカル・リポジトリ・ミラーにアクセスする必要があります。

ローカル・ミラーは、クライアントが接続するように構成する必要があります。「ソフトウェア・ディストリビューション・ミラーの使用」の前のセクションを参照してください。

このタスクは、ローカル・ネットワーク内のすべてのクライアントで実行します。この同じ手順を使用して、ローカルULNミラーをそれ自体のクライアントとして構成します。

ノート:

Oracle Linux 8以降のクライアントでは、dnfコマンドを使用します。以前のクライアントの場合は、yumコマンドを使用します。
  1. GPGキーをインポートします。
    sudo gpg --import /etc/pki/rpm-gpg/RPM-GPG-KEY

    GPGキーの場所は、システムにインストールされているOracle Linuxリリースによって異なる場合があります。Oracle Linux yumサーバーからGPGキーを直接ダウンロードおよびインポートすることもできます。詳細は、https://yum.oracle.com/faq.html#a10を参照してください。

  2. /etc/yum.repos.dディレクトリに構成されている既存のyumリポジトリを無効にします。

    次のいずれかのメソッドを選択してください。

    • /etc/yum.repos.d/*.repoファイルを編集して、ファイル内のエントリごとにenabled=0の設定を指定します。
    • グローバルな無効化の操作を実行します。
      cd /etc/yum.repos.d
      sudo dnf config-manager|yum-config-manager --disable \*
    • ファイル名から.repo拡張子を削除すると、これらのファイルがyum操作で無視されます。
      /etc/yum.repos.d> sudo for i in *.repo; do mv $i $i.disabled; done
  3. ローカルの*.repoファイル(たとえば、/etc/yum.repos.d/local-yum.repo)を作成して、ローカル・ミラーからリポジトリ・エントリを移入します。

    ヒント:

    ローカル・リポジトリをパブリックyumリポジトリやULNチャネルと区別するには、エントリ名の先頭にlocal_などの文字列を付加します。

    次の例は、Oracle Linux 8クライアントのエントリを示しています。

    [local_ol8el8_baseos_latest]
    name=Oracle Linux 8 BaseOS Latest ($basearch)
    baseurl=http://local_mirror/repo-location/
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY
    gpgcheck=1
    enabled=1
    
    [local_ol8el8_appstream]
    name=Oracle Linux 8 Application Stream ($basearch)
    baseurl=http://local_mirror/repo-location/
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY
    gpgcheck=1
    enabled=1
    
    [local_ol8el8_addons]
    name=Oracle Linux 8 Addons ($basearch)
    baseurl=http://local_mirror/repo-location/
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY
    gpgcheck=1
    enabled=1
    

    local_mirrorには、ローカル・サーバーの解決可能なホスト名またはIPアドレスを指定できます。

    次の構成が正しいことを確認してください。

    • すべてのエントリをenabled=1の設定にしています。
    • baseurlは、各クライアントが必要とするリポジトリを格納している正しいミラー位置を示します。この場所は、ミラーのベース・ディレクトリ(たとえば、/var/www/html/yum)でリポジトリをどのように編成したかによって異なります。
    • 正しいGPGキー・ファイルがgpgkeyパラメータに指定されたパスに存在する必要があります。すべてのOracle Linuxリリース・パッケージの署名に使用されるGPGキーは、Oracle Linux yumサーバーからダウンロードできます。詳細は、https://yum.oracle.com/faq.html#a10を参照してください。
  4. 構成をテストします。
    1. yumメタデータのキャッシュをクリアします。
      sudo dnf|yum clean metadata
    2. クライアントごとに、関連するリポジトリがリストされることを確認します。
      sudo dnf|yum repolist

      クライアントがローカルyumサーバーに接続できない場合は、ローカルyumサーバーのファイアウォール設定がHTTPポート(通常はポート80)への着信TCP接続を許可しているかどうかを確認してください。

  5. クライアントで正しいリポジトリが構成されていることを確認したら、ローカル・サーバーから更新を取得します。
    sudo dnf|yum update