고객사 서버를 구축하면서 내부망에 패키지 설치가 필요했다.
iso 파일을 가져와서 각 서버마다 적용
-> 파일을 서버에 넣기도 시간이 오래걸리고 디스크 용량도 은근 부담스럽다.
repo 서버를 만들어서 참조시키면??
내부망의 공용 서버를 이용하여 repo 서버를 구축 할 예정
외부 bastion 서버에 iso 파일을 넣고 내부 공용서버로 옮긴다.
용량이 안전한 곳으로 옮긴다
so. 사전에 고객사와 이야기하여 여유공간이 있는 디스크를 사용한다.
scp iso파일이름 user@[내부공용서버ip]:/root/
작업은 /data 밑에서 진행하기로 했다.
mkdir /data/iso
mkdir /data/dvd
iso 마운트 진행 및 iso 파일을 저장해준다.
cp 가 아니라 rsync를 사용한 이유
cp는 중간에 끊어지면 처음부터 다시 가져오지만 rsync는 증분만 가져온다.
전송 용량도 정할 수 있다.
mount CentOS-7-x86.64-DVD-2009.iso /data/dvd
rsync -av /data/dvd/* /data/iso
private repo를 만들어준다.
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/private.repo
repo 입력
cat << EOF > /etc/yum.repos.d/private.repo
[base]
baseurl=file://data/iso
gpgcheck=1
enabled=1
gpgkey=file:///data/iso/RPM-GPG-KEY-CentOS-7
EOF
yum clean all
yum repolist
umount /data/dvd
rm -rf /data/dvd
rm $HOME/CentOS-7-x86.64-DVD-2009.iso
다른 서버에서 참조 할 수 있도록 아파치를 만들자
yum install httpd -y
/etc/httpd/httpd.conf를 확인해보면
DocumentRoot "/var/www/html" 로 잡혀있다.
DocumentRoot를 /data/iso 로 참조해도 되지만
심볼릭 링크 를 거는게 훨씬 편하다.
ln -s [원본 디렉토리 or 파일][link 걸릴 디렉토리 or 파일]
ln -s /data/iso /var/www/html/iso
훠얼씬 편하다 !!!
systemctl enable httpd --now
이제 다른 내부망 클라이언트 서버들의 설정을 진행한다.
vi /etc/yum.repo.d/private.repo
[private repo]
name=private-repo
baseurl=http://공용서버IP/
enabled=1
gpgcheck=1
gpgkey=http://공용서버IP/RPM-GPG-KEY-CentOS-7
yum clean all
yum repolist
yum install nmap
필요한 패키지들만 넣어주는 것도 좋지만 repo 서버를 만들어서 관리하면
여러개의 서버를 동시에 관리하지 않아도 되니 매우좋다.