LoginSignup
1
2

More than 5 years have passed since last update.

CentOS7 リポジトリサーバ クイックスタート

Last updated at Posted at 2015-11-17

イントラ内にリポジトリサーバを設置する

この手順内でリポジトリサーバのホストアドレスは便宜上
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/
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2