ローカル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. 保護されるバージョンと保護されないバージョンの/etc/dnf/plugins/spacewalk.confを作成します。次に例を示します:
    sudo cp /etc/dnf/plugins/spacewalk.conf /etc/dnf/plugins/spacewalk.conf.protected
    sudo cp /etc/dnf/plugins/spacewalk.conf /etc/dnf/plugins/spacewalk.conf.unprotected

    /etc/dnf/plugins/spacewalk.conf.protectedを編集して、ULNミラー自体に使用していないチャネルを無効にします。ULNミラー・サーバーのサブスクリプションのローカライズ方法を参照してください。この手順では、システムに適用されないチャネルを無効にします。

  4. ミラーに必要なすべてのチャネルを有効にする保護されないバージョンの/etc/dnf/plugins/spacewalk.confに切り替えます。次に例を示します:
    cp /etc/dnf/plugins/spacewalk.conf.unprotected /etc/dnf/plugins/spacewalk.conf
  5. ULNチャネルをミラー用のベース・ディレクトリの場所にミラーリングします。次に例を示します:
    sudo dnf reposync --delete --download-metadata -p /var/www/html/yum
    reposyncコマンドで--repoidおよび--excludeオプションを使用すると、ミラー化しているリポジトリを正確に制御でき、ソース・パッケージを除外してディスク領域要件を削減できます。たとえば、次のようになります。
    sudo dnf reposync --delete --download-metadata -p /var/www/html/yum \
     --repoid ol9_x86_64_baseos_latest \
     --exclude *.src,*.nosrc
    sudo dnf reposync --delete --download-metadata -p /var/www/html/yum \
     --repoid ol9_x86_64_appstream \
     --exclude *.src,*.nosrc
  6. ミラーをホストしているシステムで使用されるチャネルのみを有効にする保護されるバージョンの/etc/dnf/plugins/spacewalk.confに切り替えます。次に例を示します:
    sudo cp /etc/dnf/plugins/spacewalk.conf.protected /etc/dnf/plugins/spacewalk.conf
  7. ミラーを定期的に更新するために、cronスクリプトまたはsystemdサービスとタイマーを作成することを検討してください。たとえば、保護されないバージョンの/etc/dnf/plugins/spacewalk.confに自動的に切り替える/etc/cron.daily/uln-mirror-updateにファイルを作成し、有効なチャネルに基づいてミラーを更新してから、保護されるバージョンの/etc/dnf/plugins/spacewalk.confに切り替えます。システムが自身をミラーとして使用するように構成されている場合は、ミラーの更新中にローカルのyumリポジトリ構成を無効にする必要があります:
    #!/bin/bash
    ####### Regularly update yum repos ######
    
    # Change DNF configuration to allow all repositories
    cp /etc/dnf/plugins/spacewalk.conf.unprotected /etc/dnf/plugins/spacewalk.conf
    
    # Check whether the system is configured as a client of itself
    if [ -f /etc/yum.repos.d/local-yum.repo ]; then 
       mv /etc/yum.repos.d/local-yum.repo /etc/yum.repos.d/local-yum.repo.disabled;
    fi
    
    # Run the reposync. You can change this command to specify the 
    # repoid and exclusions that you want for a more customized mirror
    
    dnf reposync --delete --download-metadata -p /var/www/html/yum
    
    # Change DNF configuration to use protected repositories
    cp /etc/dnf/plugins/spacewalk.conf.protected /etc/dnf/plugins/spacewalk.conf
    
    # Enable the yum configuration again
    if [ -f /etc/yum.repos.d/local-yum.repo.disabled ]; then
       mv /etc/yum.repos.d/local-yum.repo.disabled /etc/yum.repos.d/local-yum.repo;
    fi
    ファイルが実行可能であることを確認します。たとえば、次のようになります。
    sudo chmod +x /etc/cron.daily/uln-mirror-update

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

ミラーをホストしているサーバーのULNミラーのチャネル・サブスクリプションをローカライズすると、ホスト・システムと互換性がないミラーのパッケージが更新されなくなり、パッケージの衝突やパッケージ依存関係の損傷が引き起こされなくなります。

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

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

たとえば、ミラーをホストしているサーバーはOracle Linux 9システムであるが、そのミラーでx86_64プラットフォームのOracle Linux 8クライアントにもサービスを提供しているとします。次のステップでは、ULNミラーを更新しない場合、Oracle Linux 9に適用可能なチャネルのみが有効になるように、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)
    ol9_x86_64_UEKR7                 Oracle Linux 9 UEK Release 7 (x86_64)
    ol9_x86_64_appstream             Oracle Linux 9 Application Stream Packages (x86_64)
    ol9_x86_64_baseos_latest         Oracle Linux 9 BaseOS  Latest(x86_64)

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

  2. /etc/dnf/plugins/spacewalk.conf.protectedを編集して、サーバーに適用できないチャネル更新を無効にし、適用可能な更新を有効にします。

    次の形式で入力します。

    [repo_id]
    enabled=0

    現在の例では、すべてのOracle Linux 8チャネルを無効にします。

    [ol8_addons]
    enabled = 0
    
    [ol8_appstream]
    enabled = 0
    
    [ol8_baseos_latest]
    enabled = 0
    
    [ol9_x86_64_UEKR7]
    enabled = 1
    
    [ol9_x86_64_appstream]
    enabled = 1
    
    [ol9_x86_64_baseos_latest]
    enabled = 1

    ノート:

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

  3. /etc/dnf/plugins/spacewalk.conf.unprotectedを編集して、ミラー用のすべてのチャネルを有効にします。

    次の形式で入力します。

    [repo_id]
    enabled=0

    現在の例では、Oracle Linux 8チャネルとOracle Linux 9チャネルの両方を有効にします:

    [ol8_addons]
    enabled = 1
    
    [ol8_appstream]
    enabled = 1
    
    [ol8_baseos_latest]
    enabled = 1
    
    [ol9_x86_64_UEKR7]
    enabled = 1
    
    [ol9_x86_64_appstream]
    enabled = 1
    
    [ol9_x86_64_baseos_latest]
    enabled = 1