privateネットワークにyumリポジトリを構築

仕事でyumリポジトリを立てる場面がありせっかくなのでまとめようと思います。

対象環境は以下です。

OS: CentOS5
アーキテクチャ: 32bit

yumリポジトリサーバの設定

まっさらな状態のサーバにyumリポジトリを立てます。
まずyumリポジトリを立てるのに必要なパッケージから入れます。

$ yum install createrepo

次にhttp経由でパッケージを送るためとりあえずapacheを入れて起動しておきます。

$ yum install httpd
$ /etc/init.d/httpd start

yumリポジトリを配置するディレクトリを作成します。

$ mkdir -p /var/www/html/centos/5/i386

テスト用にCentOS標準のmysqlクライアントではなく mysql オフィシャルのMySQL-client-community RPMyumリポジトリの対象アーキテクチャディレクトリにダウンロードします。

$ cd /var/www/html/centos/5/i386
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.1/MySQL-client-community-5.1.51-1.rhel5.i386.rpm/from/http://ftp.iij.ad.jp/pub/db/mysql/

新しいRPMを追加したのでyumリポジトリを更新します。

$ createrepo -v /var/www/html/centos/5/i386

上記コマンドを実行すると下記のファイルができます。

$ ls /var/www/html/centos/5/i386/repodata/
filelists.xml.gz  other.xml.gz  primary.xml.gz  repomd.xml

yumリポジトリを利用するクライアントの設定

次に上記で設定したyumリポジトリからRPMを取得するクライアントの設定をします。
まず上記yumリポジトリの指定を行います。

$ vi /etc/yum.repos/local.repo
[local]
name=CentOS-$releasever - $basearch - Local Repository
baseurl=http://192.168.1.12/centos/$releasever/$basearch/
enabled=1
gpgcheck=0

下記のコマンドで現在設定されているyumリポジトリの一覧が見れる。

$ yum repolist
repo id               repo name                                        status
addons                CentOS-5 - Addons                                enabled:     0
base                  CentOS-5 - Base                                  enabled: 2,599
extras                CentOS-5 - Extras                                enabled:   337
local                 CentOS-5 - i386 - Local Repository               enabled:     2
updates               CentOS-5 - Updates                               enabled:   688
repolist: 3,626

では実際にRPMがprivateネットワークのyumリポジトリから取得できるか確認する。

$ yum --disablerepo=* --enablerepo=local install MySQL-client-community
=====================================================================================
 Package                       Arch        Version                Repository    Size
=====================================================================================
Installing:
 MySQL-client-community        i386        5.1.51-1.rhel5         local        7.3 M

まとめ

privateネットワークに自前のyumリポジトリを立てることでサーバ構成管理はだいぶ楽になるんじゃないかなと思う。
次回はグループインストールを行うための設定を書こうと思う。