イントラ内にリポジトリサーバを設置する
この手順内でリポジトリサーバのホストアドレスは便宜上
172.27.0.67とする
#####個別に必要なパッケージを導入
# yum install httpd rsync createrepo
#####パッケージを設置するディレクトリを作成
# mkdir -p /var/www/html/centos/7/{os,updates,extras}/
#####手動rsyncでパッケージをローカルにダウンロード
rsync -rptvz --delete rsync://ftp.riken.jp/centos/7/os/ /var/www/html/centos/7/os/
rsync -rptvz --delete rsync://ftp.riken.jp/centos/7/updates/ /var/www/html/centos/7/updates/
rsync -rptvz --delete rsync://ftp.riken.jp/centos/7/extras/ /var/www/html/centos/7/extras/
※結構時間かかるので気長に待つ。
rsyncオプションメモ
-r ディレクトリ内を再帰的にコピー。
-p パーミッションをそのままコピー。
-t タイムスタンプをそのままコピー。
-v コピーしているファイル名やバイト数などの情報を表示。
-z 通信を圧縮。
-u コピー先がコピー元より新しいならコピーしない
#####リポジトリサーバhttp設定
# cd /etc/httpd/conf.d
# mkdir old
# mv .* old
# 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
# systemctl restart httpd
httpリクエストを受けるホストIPを設定
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
HWADDR=XX:XX:XX:XX:XX:XX
TYPE=Ethernet
IPADDR=172.27.0.67
NETMASK=255.255.255.0
IPV6INIT=no
# systemctl restart NetworkManager
# systemctl restart network
ホストから以下のアドレスで接続確認する
# curl 172.27.0.67/centos/7/os/x86_64/Packages/
# vi /etc/yum.repos.d/CentOS-Base.repo
/etc/yum.repos.d/CentOS-Base.repo
[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://172.27.0.67/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://172.27.0.67/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
baseurl=http://172.27.0.67/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
参照しているリポジトリが設定したホストである事を確認
# du -sh /var/cache/yum
# yum clean all
# yum repolist all
# du -sh /var/cache/yum
定期的に差分同期する為にcronとスクリプトを仕込む
# yum install cronie-noanacron
# yum remove cronie-anacron
# systemctl start crond
# systemctl enable crond
# cat /etc/cron.d/dailyjobs
/etc/cron.daily/reposync.sh
#!/bin/bash
rsync -aurvz --delete rsync://ftp.riken.jp/centos/7/os/ /var/www/html/centos/7/os/ > /tmp/reposync.centos_7_os.log
rsync -aurvz --delete rsync://ftp.riken.jp/centos/7/updates/ /var/www/html/centos/7/updates/ > /tmp/reposync.centos_7_updates.log
rsync -aurvz --delete rsync://ftp.riken.jp/centos/7/extras/ /var/www/html/centos/7/extras/ > /tmp/reposync.centos_7_extras.log
「cron.daily」をミラーサイトと同期したい時刻に変更
/etc/cron.d/dailyjobs
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# run-parts
01 00 * * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.daily
22 4 * * 0 root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.weekly
42 4 1 * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.monthly
# ll /tmp/