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ミラーとして設定するには:
-
ULNシステム管理内でシステムをYumサーバーとして有効にします。これは、ULN Webインタフェースを使用して実行できます。
このオプションは、システムのアーキテクチャまたはプラットフォーム・バージョンに該当しないチャネルをシステムがサブスクライブしようとしたときに適用されるシステム固有のロジックを無効にします。たとえば、システムがULNシステム管理内でYumサーバーとして有効になっている場合、代替アーキテクチャまたはオペレーティング・システム・バージョンのチャネルをサブスクライブできます。
ULN Webインタフェースを使用したYumサーバー・オプションの有効化
-
ブラウザから、システムを登録するときに使用したULNユーザー名とパスワードを使用してhttps://linux.oracle.comにログインします
-
「システム」タブの登録されたマシンのリストで、システムの名前が付いているリンクをクリックします。
-
「システム詳細」ページで、「編集」をクリックします。
-
システム・プロパティの編集ページで、Yumサーバーチェック・ボックスを選択し、「変更の適用」をクリックします。
-
-
ミラーリングするチャネルをシステムでサブスクライブします。これは、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インタフェースを使用したシステムでのチャネルのサブスクライブ
-
ULNユーザー名とパスワードを使用してhttps://linux.oracle.comにログインします。
-
「システム」タブで、登録済マシンのリストにあるそのシステムの名前が付いたリンクをクリックします。
-
「システム詳細」ページで、「サブスクリプションの管理」をクリックします。
-
「システム・サマリー」ページで、利用できるチャネルまたはサブスクライブ済のチャネルのリストからチャネルを選択し、矢印をクリックすると、チャネルをリスト間で移動できます。
-
チャネルの選択を完了したら、「サブスクリプションの保存」をクリックします。
-
-
Apache HTTPサーバーをインストールします。
# yum install httpd
-
yumリポジトリのベース・ディレクトリを作成します(たとえば
/var/yum
または/var/www/html/yum
)。# mkdir -p /var/www/html/yum
ノート:
yumリポジトリの所有者には、このディレクトリへの読取り権限と書込み権限が必要です。
-
/var/www/html
の下にないyumリポジトリにベース・ディレクトリを作成し、システム上でSELinuxが強制モードで有効になっている場合:-
semanageコマンドを使用して、リポジトリのルート・ディレクトリ階層のデフォルト・ファイル・タイプを
httpd_sys_content_t
として定義します。# /usr/sbin/semanage fcontext -a -t httpd_sys_content_t "/var/yum(/.*)?"
-
restoreconコマンドを使用して、リポジトリ全体にファイル・タイプを適用します。
# /sbin/restorecon -R -v /var/yum
-
-
/var/www/html
の下にないyumリポジトリ用のベース・ディレクトリを作成した場合は、そのリポジトリを指すシンボリック・リンクを次のように/var/www/html
に作成します。# ln -s /var/yum /var/www/html/yum
-
HTTPサーバーの構成ファイル
/etc/httpd/conf/httpd.conf
を次のように編集します。-
サーバーの解決可能なドメイン名を
ServerName
の引数に指定します。ServerName server_addr:80
サーバーが解決可能なドメイン名を持たない場合、かわりにそのIPアドレスを入力します。
-
<Directory "/var/www/html">
セクションのOptions
ディレクティブの設定で、次のようにIndexes
およびFollowSymLinks
を指定し、ディレクトリ階層が参照可能になっていることを確認します。Options Indexes FollowSymLinks
-
変更内容をファイルに保存します。
-
-
HTTPサーバーを起動して、再起動後に開始するようにそれを構成します。
-
Oracle Linux 6で、次のコマンドを入力します。
# service httpd start # chkconfig httpd on
-
Oracle Linux 7で、次のコマンドを入力します。
# systemctl start httpd # systemctl enable httpd
-
-
システムでファイアウォールを有効にした場合、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
-
-
uln-yum-mirror
パッケージをインストールします。# yum install uln-yum-mirror
このパッケージには、システムがローカルULNミラーとして機能できるようにするuln-yum-mirrorスクリプトが含まれます。
ノート:
使用しているシステム用のOracle Linuxの正しい
latest
およびaddons
チャネルをシステムでサブスクライブしていない場合、次のエラーが発生してコマンドが失敗します。No package uln-yum-mirror available
-
/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-mirrorを
anacron
ジョブとして自動的に実行できます。値0ではジョブが無効になります。パッケージを更新するには、uln-yum-mirrorを手動で実行する必要があります。 -
HARDLINK_RPMS
-
ミラー処理の終了後にuln-yum-mirrorでhardlinkpyを実行し、同一の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ミラーとして機能するサーバーが、サーバー自体から更新済パッケージをインストールできるように構成するには:
-
サーバーが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_addons
、ol6_x86_64_latest
、およびol6_x86_64_UEKR3_latest
のチャネルをULNからミラーリングしています。 -
/etc/yum/pluginconf.d/rhnplugin.conf
を編集し、チャネルごとに次の節を追加してミラー化されたチャネルを無効にします。
たとえば、[repo_id] enabled=0
ol6_addons
、ol6_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
でこれらのチャネルも無効にする必要があります。 -
「ローカルULNミラーへのアクセスの構成」の説明に従って、サーバーをyumクライアントとして構成します。
ローカルULNミラーへのアクセスの構成
ローカルULNミラーを設定してある場合、そのサーバーからYum更新を受信するようにローカルのOracle Linuxシステムを構成できます。
Oracle Linuxシステムをyumクライアントとして構成するには:
-
GPGキーをインポートします。
# rpm --import /usr/share/rhn/RPM-GPG-KEY
-
/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
-
/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_latest
、local_ol6_UEKR3_latest
、およびlocal_ol6_addons
の各チャネルが有効になります。 -
構成をテストするには:
-
yumメタデータのキャッシュをクリアします。
# yum clean metadata
-
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接続が許可されていることを確認します。
-
-
これで、yum updateを実行して、ローカルULNミラーから新しい更新を取得できます。