CentOS yum repository mirror 구축하기

2013/12/18 - [리눅스] - 우분투 apt 미러 서버 구성

위 글에 yum 미러는 어떻게 구축하냐는 댓글이 달려서 정리해본다.
방법은 매우 간단하다. 그냥 기존 mirror 사이트를 몽땅 긁어오면 된다. 물론 용량은 많이 필요하다.

일단 /data/centos 아래에 몽땅 다운로드 받는다고 가정하겠다.

mkdir -p /data/centos

아래 CentOS 미러 사이트 중 마음에 드는 녀석을 골라보라.

http://www.centos.org/download/mirrors/

개인적으로 rsync를 추천한다. 아래는 rsync로 neowiz에서 당겨오는 예제.

rsync  -avSHP --delete --exclude "local*" --exclude "isos" ftp.neowiz.com::centos /data/centos


다음은 wget으로 ftp 사이트 당겨오는 예제. cdnetworks를 예제로 해보자.

wget -m -nH -np -R "*.iso" -P "/data/" "ftp://centos.mirror.cdnetworks.com/centos/"


마지막으로 wget으로 http 사이트 당겨오는 예제. 이번엔 daum을 예제로 해보자.

wget -m -nH -np -R "index.*,*.iso" -P "/data/" "http://ftp.daum.net/centos/"


공통적으로 iso 파일은 다운로드 받지 않도록 했다. iso 파일까지 받으면 용량이 너무 커지므로...

파일을 다 받았다면 아파치 웹서버를 올려서 Client가 다운로드 받을 수 있도록 하면 되겠다. 여기서는 그냥 yum으로 설치하는 예제.

# 아파치 설치
yum -y install httpd

# 서버 부팅시 아파치 자동으로 올라오게 설정
chkconfig httpd on

# 아파치 시작
service httpd start

# CentOS Repo 디렉터리를 아파치 document root에 심볼릭 링크
ln -s /data/centos /var/www/html/centos

# SELinux 및 방화벽 끄기
lokkit --disabled --selinux=disabled



이렇게 하면 끝이다. Client에서 http로 rpm 다운로드가 가능하다. 아래는 Client에 repo 파일 설정하는 예제.
위에 구축한 서버 IP가 192.168.0.101이라 가정하면...

# vi /etc/yum.repos.d/test.repo
[base]
name=CentOS-$releasever - Base
baseurl=http://192.168.0.101/centos/$releasever/os/$basearch/
gpgcheck=0

[updates]
name=CentOS-$releasever - Updates
baseurl=http://192.168.0.101/centos/$releasever/updates/$basearch/
gpgcheck=0

[extras]
name=CentOS-$releasever - Extras
baseurl=http://192.168.0.101/centos/$releasever/extras/$basearch/
gpgcheck=0

[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://192.168.0.101/centos/$releasever/centosplus/$basearch/
gpgcheck=0

[contrib]
name=CentOS-$releasever - Contrib
baseurl=http://192.168.0.101/centos/$releasever/contrib/$basearch/
gpgcheck=0