Oracle Linux 6.2 のYumサーバーを構築

Oracle Linux 6.2 のErrataを含めたすべてのバイナリとソースは Oracle Public Yum Server で無償公開されているが、CentOSScientific Linux で言うosディレクトリが存在しないため、このYumサーバーからvirt-installコマンドでXenなどの仮想マシンを作成できない。そこでosディレクトリの代わりとなるYumサーバーを構築しようと思う。以下は Scientific Linux (SL) 6.2 に構築しているが、Red Hat Enterprise Linux (RHEL) / CentOS / Oracle Linux でも同様だろう。

まずは Oracle Linux 6.2 のISOメディアを入手する。入手方法は 複眼中心: Oracle Linux 6.2 をインストール を参照してほしい。このISOファイルをマウントし、ファイル内容をコピーする。あとでHTTPで公開するので、/var/www/html/os/ol62 をコピー先とした。setenforcerestoeconコマンドはSELinuxが有効な環境でのみ実行する必要がある。

Oracle Linux 6.2 のメディアにはboot.isoが含まれていないので、単にコピーしただけでは以下のようなエラーで作成できない。

そこで、Oracle Software Delivery Cloud の Oracle Linux Release 6 Update 2 Media Pack v1 for x86_64 (64 bit) に Oracle Linux Release 6 Update 2 Boot iso image for x86_64 (64 bit) というメディアが別にあるので、これをダウンロードして /var/www/html/os/ol6/images/boot.iso として保存する。

/var/www/html/os/ol62/.treeinfo の[images-x86_64]セクションにboot.isoを追加する。

必須ではないが、以下のファイルを用意しておくとファイルが一覧表示されるようになるので、何かあったときにデバッグしやすいだろう。

Apache HTTP Server を起動して、http://$hostname/os/ol62/ にWebブラウザーでアクセスしてファイルが表示されればYumサーバーの完成だ。

index of /os/ol62

これによって、以下のようにvirt-installから仮想マシンが作成できるようになった。

ついでに、ボクのようにデフォルトでは最低限のパッケージしかインストールせずに必要なときに都度インストールするスタイルで運用していると、Oracle Public Yum Server が200KB/sくらいしか出ない点がもどかしいので、Errataがリリースされておらず Oracle Linux 6.2 のDVDに入ってるパッケージのバージョンをそのまま使う場合は、今回構築したYumサーバーから取得することにした。

Oracle Public Yum Server のlatestディレクトリにはErrataだけではなく、DVD内にあったものも含めたすべてのパッケージが存在する点に注意しよう。Yumは複数のリポジトリで同じバージョンを見つけた場合、リポジトリ名がアルファベット順で早いほうを優先するので、public-yum-ol6.repool6_u2_baseol62_baseにしてol6_latestより優先させるようにすることで、ol62_baseol6_latestに同じバージョンがあった場合にはol62_base、つまり今回構築したローカルのYumサーバーからダウンロードするようになる。

以下のようにバージョンが同じものはol62_baseからダウンロードするようになれば設定は完了だ。

コメントを残す