読者です 読者をやめる 読者になる 読者になる

リポジトリのミラーサーバ作成(CentOS7)

リポジトリのミラーサーバ作成(CentOS7)

1.既存のリポジトリサーバと同期(64bit)
2.httpdのインストールと設定変更
3.CentOS-Base.repoの編集


ダウンロード実行ファイルの作成
# vi /usr/local/bin/reposync.sh

#!/bin/sh
domain=ftp.nara.wide.ad.jp
rsync -rptv --delete rsync://${domain}/pub/Linux/centos/7/updates/x86_64/ /var/www/centos/7/updates/x86_64/
rsync -rptv --delete rsync://${domain}/pub/Linux/centos/7/os/x86_64/ /var/www/centos/7/os/x86_64/
rsync -rptv --delete rsync://${domain}/pub/Linux/centos/7/extras/x86_64/ /var/www/centos/7/extras/x86_64/
rsync -rptv --delete rsync://${domain}/pub/Linux/centos/7/centosplus/x86_64/ /var/www/centos/7/centosplus/x86_64/

rsync -rptv --delete rsync://${domain}/pub/Linux/centos/6/updates/x86_64/ /var/www/centos/6/updates/x86_64/
rsync -rptv --delete rsync://${domain}/pub/Linux/centos/6/os/x86_64/ /var/www/centos/6/os/x86_64/
rsync -rptv --delete rsync://${domain}/pub/Linux/centos/6/extras/x86_64/ /var/www/centos/6/extras/x86_64/
rsync -rptv --delete rsync://${domain}/pub/Linux/centos/6/centosplus/x86_64/ /var/www/centos/6/centosplus/x86_64/
rsync -rptv --delete rsync://${domain}/pub/Linux/centos/6/contrib/x86_64/ /var/www/centos/6/contrib/x86_64/
updatedb

実行権限付与
# chmod +x /usr/local/bin/reposync.sh

ダウンロードディレクトリの作成
# grep rsync /usr/local/bin/reposync.sh|awk '{print $6}' | xargs mkdir -p

ダウンロード開始
# /usr/local/bin/reposync.sh

ディスク状況の確認
# grep rsync /usr/local/bin/reposync.sh|awk '{print $6}' | xargs du -sh

6.1G    /var/www/centos/7/updates/x86_64/
6.7G    /var/www/centos/7/os/x86_64/
434M    /var/www/centos/7/extras/x86_64/
1.3G    /var/www/centos/7/centosplus/x86_64/
3.8G    /var/www/centos/6/updates/x86_64/
5.8G    /var/www/centos/6/os/x86_64/
21M     /var/www/centos/6/extras/x86_64/
989M    /var/www/centos/6/centosplus/x86_64/
40K     /var/www/centos/6/contrib/x86_64/

# df -h | grep /var/www/centos

/dev/sdb1                  50G   25G   22G   54% /var/www/centos

httpdのインストールと自動起動
# yum -y install httpd
# systemctl enable httpd.service

httpdのコンフィグ変更
# vi /etc/httpd/conf.d/yum-repo.conf

Alias /centos /var/www/centos
<directory "/var/www/centos">
  options +indexes
</directory>

# sed 's/^#\(ServerName\).*/\1 mirror.ln:80/g' /etc/httpd/conf/httpd.conf -i
# httpd -t

Syntax OK

# systemctl restart httpd.service

ブラウザでアクセスし、「Index of /centos」を確認する
http://192.168.137.71/centos/

CentOS-Base.repoを変更する
# cd /etc/yum.repos.d/;sed -e 's/^mirror/#mirror/g' -e 's/#baseurl/baseurl/g' -e 's/mirror.centos.org/mirror.ln/g' CentOS-Base.repo -i.org

→当初自前のリポジトリミラーサーバで運用するつもりだったが、64bit環境で32bitのrpmをインストールしなければいけない場合があり、切り替えるのが手間なので既存のmirror.centos.orgを使うことにした。(hostsファイルで名前解決)
# cd /etc/yum.repos.d/;sed -e 's/^mirror/#mirror/g' -e 's/#baseurl/baseurl/g' CentOS-Base.repo -i
32bitや自前サーバを使わない時は、追加した行をコメントアウトして使う。
# echo "192.168.137.71 mirror.centos.org" >> /etc/hosts

キャッシュ削除
# yum clean all

別ターミナルでaccess.logを出力
# tail -f /var/log/httpd/access_log

アップデートやインストールを行い、別ターミナルのaccess_logの出力があることを確認する
# yum -y update