CentOS 7でyumサーバ(yumリポジトリミラーサーバ)を構築する
Pocket

インターネット接続が出来ない環境でCentOSを構築した場合でも、今回紹介するようなyumサーバ(yumリポジトリミラー)を構築しDMZ領域に設置することで、yumを用いたパッケージ導入が可能になる。
今回は、そんなyumリポジトリサーバをCentOS 7を用いて構築を行う。

1.前提パッケージの導入

yumサーバ(yumリポジトリミラーサーバ)は、ただミラーサーバとして動作させるだけであればwebサーバ機能(+外部のyumサーバからパッケージを取得してくるrsyncコマンド)があれば事足りる。独自のrpmパッケージを配布したい場合は、別途createrepoパッケージが必要になる。今回はミラーサーバとして構築するが、これらのパッケージを事前にインストールしておく。

まずは、以下のコマンドでパッケージをインストールする。

yum install httpd rsync createrepo

 

インターネットに接続出来ない環境の場合は、こちらの内容を参考にisoファイルからパッケージを導入すると良いだろう。

2.配布させるパッケージのダウンロードを行う

まずは配布するパッケージを設置するディレクトリを作成する。今回は、CentOS 6及び7のOS、updatesのパッケージを対象とする。

mkdir -p /var/www/html/centos/{6,7}/{os,updates}/

 

次に、このyumサーバで配布するパッケージを既存のyumリポジトリサーバからダウンロードする。

rsync -rptv --delete rsync://ftp.riken.jp/centos/6/os/ /var/www/html/centos/6/os/
rsync -rptv --delete rsync://ftp.riken.jp/centos/6/updates/ /var/www/html/centos/6/updates/
rsync -rptv --delete rsync://ftp.riken.jp/centos/7/os/ /var/www/html/centos/7/os/
rsync -rptv --delete rsync://ftp.riken.jp/centos/7/updates/ /var/www/html/centos/7/updates/

 

上記のコマンドをcronで定期実行(1日1回程度)することで、最新の状態を維持することができる。

Sponsored Links

3.apacheの設定を行う

apacheの設定を行い、リポジトリサーバとして利用できるようにする。
以下のコマンドで、新規に「/etc/httpd/conf.d/centos-mirror.conf」を作成する。

echo '<directory "/var/www/html/centos">' >  /etc/httpd/conf.d/centos-mirror.conf
echo '  options +indexes'                 >> /etc/httpd/conf.d/centos-mirror.conf
echo '</directory>'                       >> /etc/httpd/conf.d/centos-mirror.conf

4.クライアントの設定を行う

最後に、クライアント側がyumを使う際に、構築したyumレポジトリサーバを参照するように設定を変更する。

●CentOS6

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://yumリポジトリサーバのアドレス/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
#baseurl=http://yumリポジトリサーバのアドレス/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

 

●CentOS7

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://yumリポジトリサーバのアドレス/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
#baseurl=http://yumリポジトリサーバのアドレス/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

 

後は、クライアント側で以下のコマンドを実行し、動作確認を行う。

yum clean all
yum list all

 

問題なく動作すれば、無事yumリポジトリミラーサーバの構築は完了。

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。