CentOSのレポジトリをミラーリングする

先日、CentOSのインストールをしようと思ったのですが、rikenのミラーサイトがメンテナンス中だったのか、つながらない状態になっていました。他にもミラーサイトはあるので、そちらを使って事なきを得ましたが、自分でコントロールできないのは不安です。

そこで、CentOSのミラーレポジトリをローカルに作っておくことにしました。毎回、外部のミラーサイトに負荷をかけるのも良くないですし、LAN内にミラーがあれば転送速度の向上も期待できそうです。

ローカルのミラーサイトはHTTPのみ対応とします。レポジトリを置くマシンで、ApacheなどのHTTPサーバを立ち上げておきます。

ファイルの取得には lftp コマンドを使います。リスト 1 のように、サブコマンド mirror を使うことで、ミラーリングすることができます。今回はftp.riken.jpで公開されているCentOS 6.3 x86_64のレポジトリを丸ごとミラーリングします。

リスト 1 : lftpによるミラーリング

# lftp -e 'mirror --delete --only-newer Linux/centos/6.3/os/x86_64 /var/www/html/mirror/Linux/centos/6.3/os/x86_64 && exit' ftp.riken.jp

常に最新の状態を保ちたい場合には、リスト 1 のコマンドをcronで1日1回ほど実行すればよいでしょう。

ローカルサイトのDocumentRootは /var/www/html の設定にしてありますので、ローカルミラーのURLは下記のようになります。ホスト名はlocal_mirrorとしてあります。

リスト 2 : ローカルミラーサイトのURL

http://local_mirror/mirror/Linux/centos/6/os/x86_64

Kickstartインストールで、このミラーレポジトリを使う場合は、Kickstartファイルに下記のように設定します。

リスト 3 : Kickstartファイルのインストールメディア指定

url --url http://local_mirror/mirror/Linux/centos/6/os/x86_64

lftpコマンドによる初回のミラーリングでは、大量のダウンロードが実行されるので時間はかかりますが、CentOSを何度もインストールする可能性があるなら、メリットは大きいと思います。