5 ローカルULNミラーの作成および使用

警告:

Oracle Linux 7は現在延長サポート中です。詳細は、Oracle Linux拡張サポートおよびOracleオープン・ソース・サポート・ポリシーを参照してください。

できるだけ早くアプリケーションとデータをOracle Linux 8またはOracle Linux 9に移行してください。

ノート:

このドキュメントは、Oracle Linux 6およびOracle Linux 7に固有の内容です。Oracle Linux 8またはOracle Linux 9を使用している場合は、Oracle Linux: Oracle Linuxでのソフトウェアの管理を参照してください。

ローカルyumサーバーを構成して、ネットワーク内のULNチャネルをミラー化できます。このアプローチにより、ULN内のシステムの登録および管理に関連するオーバーヘッドが削減されますが、ULNで使用可能なすべてのソフトウェアおよび更新がシステムにプロビジョニングされます。直接またはプロキシを使用してインターネットに接続できないシステムでは、最新のソフトウェアで最新の状態を維持するためにこの方法を使用することもできます。

このアプローチでは、yumサーバーがULNに登録されていること、yumサーバーにミラー化されたチャネルをホストするために使用可能なディスク領域があること、yumサーバーがホストするチャネルをサブスクライブしていることが必要です。ローカルULNミラーを使用するシステムは、ローカルyumサーバー上のパッケージと、ULNを介してOracleから提供される最新の更新との同期に依存します。ローカルULNミラーが最新でない場合、ネットワーク内のシステムが重要なセキュリティ更新をインストールできない可能性があります。

この章では、ローカルULNミラーをホストするための要件と、この目的でyumサーバーを設定および構成する手順について説明します。ローカルyumサーバーにアクセスして更新を取得するためにクライアント・システムを構成する手順について説明します。

ノート:

ローカルyumサーバーでULNチャネルのミラー化を検討している場合は、Spacewalk for Oracle Linuxも検討してください。Spacewalkは、システムのメンテナンス、インストールおよびパッケージ管理を支援するツール(直感的なWebインタフェースまたはコマンドライン・ツールからULNチャネルを簡単にミラー化するツールなど)を提供します。詳細は、https://docs.oracle.com/cd/E92593_01/index.htmlにあるSpacewalk for Oracle Linuxのドキュメントを参照してください。

ローカルULNミラーの前提条件

ローカルULNミラーとして設定するシステムは、次の基準を満たす必要があります。

  • ULNに登録する必要があります。「ULN登録」を参照してください。

  • Oracle Linux 6 (x86_64)またはOracle Linux 7 (x86_64)が実行されている必要があります。

  • yumメタデータを作成するため少なくとも6 GBのメモリーが必要です。

  • ホストするパッケージのコピーを格納するための十分なディスク領域が必要です。ディスク領域を計算する場合は、次のことを考慮してください。

    • ディスク領域要件は、サブスクライブするチャネルによって異なります。また、チャネルは、サービス対象のクライアントの数によって異なります(プラットフォーム、オペレーティング・システム、各クライアントが使用し更新が必要な可能性があるその他の特定のパッケージなど)。

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

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

    特定のミラー設定のディスク・サイズ要件の見積りに関するガイダンスについては、次のコマンドを実行して、システムがサブスクライブしている各ULNチャネルに関する情報を表示します。

    $ sudo yum repoinfo

    特定のチャネルの情報のみを表示するには、次のようにコマンドでリポジトリIDを指定します。

    $ sudo yum repoinfo ol7_x86_64_latest
    Loaded plugins: langpacks, rhnplugin, ulninfo
    This system is receiving updates from ULN.
    Repo-id      : ol7_x86_64_latest
    Repo-name    : Oracle Linux 7 Latest (x86_64)
    Repo-status  : enabled
    Repo-updated : Tue Feb 23 03:30:36 2021
    Repo-pkgs    : 17,366
    Repo-size    : 27 G
    Repo-baseurl : https://linux-update.oracle.com/XMLRPC/GET-REQ/ol7_x86_64_latest
    Repo-expire  : 21,600 second(s) (last: Wed Feb 24 20:43:12 2021)
      Filter     : read-only:present
    Repo-excluded: 4,560
    
    repolist: 17,366

    リポジトリは動的であり時間の経過とともに増大するため、Repo-sizeで指定する値よりもかなり大きなディスク領域を常に割り当ててください。ディスク領域にリソースを増やすほど、ローカル・サーバーがULNチャネルをミラー化する効率が向上します。

ローカルULNミラーの設定

ローカル・システムをローカルULNミラーとして設定するには:

  1. ULNシステム管理内でシステムをYumサーバーとして有効にします。これは、ULN Webインタフェースを使用して実行できます。

    このオプションは、システムのアーキテクチャまたはプラットフォーム・バージョンに該当しないチャネルをシステムがサブスクライブしようとしたときに適用されるシステム固有のロジックを無効にします。たとえば、システムがULNシステム管理内でYumサーバーとして有効になっている場合、代替アーキテクチャまたはオペレーティング・システム・バージョンのチャネルをサブスクライブできます。

    ULN Webインタフェースを使用したYumサーバー・オプションの有効化

    1. ブラウザから、システムを登録するときに使用したULNユーザー名とパスワードを使用してhttps://linux.oracle.comにログインします

    2. 「システム」タブの登録されたマシンのリストで、システムの名前が付いているリンクをクリックします。

    3. 「システム詳細」ページで、「編集」をクリックします。

    4. システム・プロパティの編集ページで、Yumサーバーチェック・ボックスを選択し、「変更の適用」をクリックします。

  2. ミラーリングするチャネルをシステムでサブスクライブします。これは、ULN Webインタフェースを使用するか、uln-channelコマンドを使用して実行できます。

    ノート:

    システムではuln-yum-mirrorパッケージをインストールできるように、インストール済のオペレーティング・システム・リリース(Oracle Linux 6またはOracle Linux 7)および関連するシステム・アーキテクチャのlatestチャネルおよびaddonsチャネルをサブスクライブする必要があります。このパッケージには、システムがローカルULNミラーとして機能できるようにするuln-yum-mirrorスクリプトが含まれます。

    システムでサブスクライブしているチャネルのリストを後で更新した場合、システムがミラー化するチャネルがuln-yum-mirrorスクリプトにより更新されます。

    Oracle Linux Supportアカウントがあり、yumサーバーでローカルKsplice Offlineクライアント用のKspliceパッケージをホストする場合は、サポートする必要があるアーキテクチャおよびOracle Linuxリリースを入手するためにOracle LinuxチャネルのKspliceをサブスクライブします。

    使用可能なリリース・チャネルの完全な最新リストを確認するには、https://linux.oracle.comでULNにログオンしてください。

    ミラーリングするチャネルをシステムでサブスクライブするには、ULN Webインタフェースを使用します。

    ULN Webインタフェースを使用したシステムでのチャネルのサブスクライブ

    1. ULNユーザー名とパスワードを使用してhttps://linux.oracle.comにログインします。

    2. 「システム」タブで、登録済マシンのリストにあるそのシステムの名前が付いたリンクをクリックします。

    3. 「システム詳細」ページで、「サブスクリプションの管理」をクリックします。

    4. 「システム・サマリー」ページで、利用できるチャネルまたはサブスクライブ済のチャネルのリストからチャネルを選択し、矢印をクリックすると、チャネルをリスト間で移動できます。

    5. チャネルの選択を完了したら、「サブスクリプションの保存」をクリックします。

  3. Apache HTTPサーバーをインストールします。

    # yum install httpd
  4. yumリポジトリのベース・ディレクトリを作成します(たとえば/var/yumまたは/var/www/html/yum)。

    # mkdir -p /var/www/html/yum

    ノート:

    yumリポジトリの所有者には、このディレクトリへの読取り権限と書込み権限が必要です。

  5. /var/www/htmlの下にないyumリポジトリにベース・ディレクトリを作成し、システム上でSELinuxが強制モードで有効になっている場合:

    1. semanageコマンドを使用して、リポジトリのルート・ディレクトリ階層のデフォルト・ファイル・タイプをhttpd_sys_content_tとして定義します。

      # /usr/sbin/semanage fcontext -a -t httpd_sys_content_t "/var/yum(/.*)?"
    2. restoreconコマンドを使用して、リポジトリ全体にファイル・タイプを適用します。

      # /sbin/restorecon -R -v /var/yum
  6. /var/www/htmlの下にないyumリポジトリ用のベース・ディレクトリを作成した場合は、そのリポジトリを指すシンボリック・リンクを次のように/var/www/htmlに作成します。

    # ln -s /var/yum /var/www/html/yum
  7. HTTPサーバーの構成ファイル/etc/httpd/conf/httpd.confを次のように編集します。

    1. サーバーの解決可能なドメイン名をServerNameの引数に指定します。

      ServerName server_addr:80

      サーバーが解決可能なドメイン名を持たない場合、かわりにそのIPアドレスを入力します。

    2. <Directory "/var/www/html">セクションのOptionsディレクティブの設定で、次のようにIndexesおよびFollowSymLinksを指定し、ディレクトリ階層が参照可能になっていることを確認します。

      Options Indexes FollowSymLinks
    3. 変更内容をファイルに保存します。

  8. HTTPサーバーを起動して、再起動後に開始するようにそれを構成します。

    • Oracle Linux 6で、次のコマンドを入力します。

      # service httpd start
      # chkconfig httpd on
    • Oracle Linux 7で、次のコマンドを入力します。

      # systemctl start httpd
      # systemctl enable httpd
  9. システムでファイアウォールを有効にした場合、TCPポート80でHTTP接続リクエストを受信できるようにそれを構成します。

    • Oracle Linux 6で、次のコマンドを入力します。

      # iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
      # service iptables save
    • Oracle Linux 7で、次のコマンドを入力します。

      # firewall-cmd --add-service=http
      # firewall-cmd --permanent --add-service=http
  10. uln-yum-mirrorパッケージをインストールします。

    # yum install uln-yum-mirror

    このパッケージには、システムがローカルULNミラーとして機能できるようにするuln-yum-mirrorスクリプトが含まれます。

    ノート:

    使用しているシステム用のOracle Linuxの正しいlatestおよびaddonsチャネルをシステムでサブスクライブしていない場合、次のエラーが発生してコマンドが失敗します。

    No package uln-yum-mirror available
  11. /usr/bin/uln-yum-mirrorスクリプトの操作を構成するには、/etc/sysconfig/uln-yum-mirrorファイルを編集します。

    たとえば、yumリポジトリ用のベース・ディレクトリが/var/www/html/yumでない場合、REP_BASEパラメータの値を正しいベース・ディレクトリに設定します。

    REP_BASE=/var/yum

    uln-yum-mirrorパッケージをインストールすると、ローカルyumリポジトリを毎日1回更新するanacronジョブ(/etc/cron.daily/uln-yum-mirror)も構成されます。CRON_ENABLEDの値を0に設定することで、このジョブを無効にできます。

    CRON_ENABLED=0

    /etc/sysconfig/uln-yum-mirrorファイルの構成オプションの詳細は、「ULNミラーの構成」を参照してください。

    anacronジョブにより/usr/bin/uln-yum-mirrorスクリプトが実行されると、リポジトリに移入されます。また、いつでも手動でスクリプトを実行してリポジトリを更新できます。「ローカルULNミラーでのリポジトリの更新」を参照してください。

ULNミラーの構成

/etc/sysconfig/uln-yum-mirrorファイルには、/usr/bin/uln-yum-mirrorスクリプトの動作に影響する次の構成パラメータが含まれます。

ALL_PKGS

uln-yum-mirrorが、使用可能な各パッケージのすべてのバージョンをミラーリングするか、各パッケージの最新バージョンのみをダウンロードするかを指定します。デフォルト値の1では、uln-yum-mirrorは、利用可能な各パッケージのすべてのバージョンをミラーリングします。値0では、uln-yum-mirrorは各パッケージの最新バージョンのみをダウンロードします。

CRON_ENABLED

uln-yum-mirrorを1日に1回自動的に実行するかどうかを指定します。デフォルト値の1では、uln-yum-mirroranacronジョブとして自動的に実行できます。値0ではジョブが無効になります。パッケージを更新するには、uln-yum-mirrorを手動で実行する必要があります。

HARDLINK_RPMS

ミラー処理の終了後にuln-yum-mirrorhardlinkpyを実行し、同一のRPM間でハード・リンクを作成するかどうかを指定します。デフォルト値の1では、ハード・リンクが有効になり、ストレージ領域が節約されます。ファイル・システム間でハード・リンクを作成することはできません。リポジトリのストレージが複数のファイル・システムにまたがる場合は値を0に設定してください。

LOG_OUTPUT

uln-yum-mirrorログを出力するかどうかを指定します。デフォルト値の1では、ロギングが有効になります。値0では、ロギングが無効になります。

REP_BASE

リポジトリのベース・ディレクトリを指定します。デフォルト設定は/var/www/html/yumです。HTTPサーバーの構成をカスタマイズしないかぎり、この設定を変更しないでください。

REP_EL
REP_ENG
REP_OL
REP_OVM
REP_UEK

リポジトリの名前を指定します。必要な場合は、代替名を構成できます。

REPO_FILE_DIR

現在は使用されていません。

SRC

uln-yum-mirrorが、バイナリRPMに加えてソースRPMをミラーリングするかどうかを指定します。デフォルト値の0では、uln-yum-mirrorはソースRPMをミラーリングしません。値1では、uln-yum-mirrorはソースRPMをミラーリングします。

YUM_GLOBAL_CACHE

yumグローバル・キャッシュ・ディレクトリを指定します。デフォルト設定は/var/cache/yumです。HTTPサーバーの構成をカスタマイズしないかぎり、この設定を変更しないでください。

ローカルULNミラーでのリポジトリの更新

anacronジョブの実行を待たずに、またはこのジョブを無効にしている場合に、サブスクライブしたチャネルのリポジトリをすぐに更新するには、ローカルULNミラー・サーバーで次のコマンドを入力します。

# /usr/bin/uln-yum-mirror

ノート:

リポジトリのコンテンツをまだ設定していない場合は、すべてのパッケージをダウンロードするのに多くの時間がかかることがあります。

ローカルULNミラーでのyumの構成

次の手順により、ローカルULNミラーとして機能するサーバーに、ULNからではなくサーバー自体からパッケージ更新をインストールするためのyumコマンドが構成されます。このタイプの構成は、システムが代替のプラットフォームまたはアーキテクチャのチャネルをミラー化するように構成されている場合に重要になります。ULNシステム管理内でYumサーバーとして構成されているシステムでは、チャネル・サブスクリプション・ロジックが無効になるため、アーキテクチャまたはプラットフォームが競合するチャネルからパッケージがインストールされる可能性があります。このため、システムがホストしているローカルULNミラーを使用するようにシステムを構成できます。これにより、システム独自のチャネルまたはリポジトリのサブスクリプションを制御できます。

この手順はuln-yum-mirrorスクリプトの処理に影響しない点に注意してください。

ローカルULNミラーとして機能するサーバーが、サーバー自体から更新済パッケージをインストールできるように構成するには:

  1. サーバーがULNからミラーリングしているチャネルのリストを、次のコマンドを使用して表示します。

    # yum repolist
    Loaded plugins: rhnplugin, security
    This system is receiving updates from ULN. 
    0 packages excluded due to repository protections
    repo id                   repo name                                    status
    ol6_x86_64_addons         Oracle Linux 6 Add ons (x86_64)              367
    ol6_x86_64_latest         Oracle Linux 6 Latest (x86_64)               35,995
    ol6_x86_64_UEKR3_latest   Latest Unbreakable Enterprise Kernel
                              Release 3 for Oracle Linux 6 (x86_64)        41

    この例では、サーバーは、ol6_addonsol6_x86_64_latest、およびol6_x86_64_UEKR3_latestのチャネルをULNからミラーリングしています。

  2. /etc/yum/pluginconf.d/rhnplugin.confを編集し、チャネルごとに次の節を追加してミラー化されたチャネルを無効にします。
    [repo_id]
    enabled=0
    たとえば、ol6_addonsol6_x86_64_latest、およびol6_x86_64_UEKR3_latestのチャネルを無効にするには、次の節を追加します。
    [ol6_addons]
    enabled=0
    
    [ol6_x86_64_latest]
    enabled=0
    
    [ol6_x86_64_UEKR3_latest]
    enabled=0

    ノート:

    これ以降、システムでULNの追加チャネルをサブスクライブする場合は、/etc/yum/pluginconf.d/rhnplugin.confでこれらのチャネルも無効にする必要があります。

  3. 「ローカルULNミラーへのアクセスの構成」の説明に従って、サーバーをyumクライアントとして構成します。

ローカルULNミラーへのアクセスの構成

ローカルULNミラーを設定してある場合、そのサーバーからYum更新を受信するようにローカルのOracle Linuxシステムを構成できます。

Oracle Linuxシステムをyumクライアントとして構成するには:

  1. GPGキーをインポートします。

    # rpm --import /usr/share/rhn/RPM-GPG-KEY
  2. /etc/yum.repos.dディレクトリに構成されている既存のyumリポジトリを無効にします。既存のリポジトリ・ファイルを編集し、enabled=0を設定してすべてのエントリを無効にすることも、yum-config-managerを使用することもできます。

    # yum-config-manager --disable \*

    または、.repo接尾辞を使用しないように、このディレクトリ内のファイルの名前を変更できます。これにより、yumでこれらのエントリが無視されます。たとえば、次のようになります。

    # cd /etc/yum.repos.d
    # for i in *.repo; do mv $i $i.disabled; done
  3. /etc/yum.repos.dディレクトリに、Oracle Linux 6 yumクライアント用の次のようなエントリを含むファイルlocal-yum.repoを作成します。

    [local_ol6_latest]
    name=Oracle Linux $releasever - $basearch - latest
    baseurl=http://local_uln_mirror/yum/OracleLinux/OL6/latest/$basearch/
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY
    gpgcheck=1
    enabled=1
    
    [local_ol6_UEKR3_latest]
    name=Unbreakable Enterprise Kernel Release 3 for Oracle Linux $releasever - $basearch - latest
    baseurl=http://local_uln_mirror/yum/OracleLinux/OL6/UEKR3/latest/$basearch/
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY
    gpgcheck=1
    enabled=1
    
    [local_ol6_addons]
    name=Oracle Linux $releasever - $basearch - addons
    baseurl=http://local_uln_mirror/yum/OracleLinux/OL6/addons/$basearch/
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY
    gpgcheck=1
    enabled=1

    ローカル・リポジトリをULNリポジトリから区別するには、エントリ名の先頭にlocal_などの文字列を付加します。

    local_uln_mirrorを、ローカルULNミラーのIPアドレスまたは解決可能なホスト名で置き換えます。

    正しいGPGキー・ファイルは、gpgkeyパラメータに指定されたパスに存在する必要があります。Oracle Linux yumサーバーから、すべてのOracle Linuxリリース・パッケージの署名に使用されるGPGキーをダウンロードできます。詳細は、https://yum.oracle.com/faq.html#a10を参照してください。

    この例の構成では、local_ol6_latestlocal_ol6_UEKR3_latest、およびlocal_ol6_addonsの各チャネルが有効になります。

  4. 構成をテストするには:

    1. yumメタデータのキャッシュをクリアします。

      # yum clean metadata
    2. yum repolistを使用して構成を確認します。たとえば:

      # yum repolist
       Loaded plugins: rhnplugin, security
       This system is receiving updates from ULN. 
      0 packages excluded due to repository protections
      repo id                         repo name                                    status
      local_ol6_addons                Oracle Linux 6 - x86_64 - latest             367
      local_ol6_x86_64_latest         Oracle Linux 6 - x86_64 - latest             35,995
      local_ol6_x86_64_UEKR3_latest   Unbreakable Enterprise Kernel Release 3 
                                      for Oracle Linux 6 - x86_64 - latest         41

      yumがローカルULNミラーに接続できない場合、そのローカルULNミラー・サーバーのファイアウォール設定で、HTTPポート(通常はポート80)への着信TCP接続が許可されていることを確認します。

  5. これで、yum updateを実行して、ローカルULNミラーから新しい更新を取得できます。