내부망 아파치 yum repo 서버 만들기

Damian·2022년 2월 9일

Centos

목록 보기
6/7

1. 왜 하게되었는가?

고객사 서버를 구축하면서 내부망에 패키지 설치가 필요했다.

  • iso 파일을 가져와서 각 서버마다 적용
    -> 파일을 서버에 넣기도 시간이 오래걸리고 디스크 용량도 은근 부담스럽다.

  • repo 서버를 만들어서 참조시키면??

2. iso 파일 가져오기

내부망의 공용 서버를 이용하여 repo 서버를 구축 할 예정
외부 bastion 서버에 iso 파일을 넣고 내부 공용서버로 옮긴다.

용량이 안전한 곳으로 옮긴다
so. 사전에 고객사와 이야기하여 여유공간이 있는 디스크를 사용한다.

scp iso파일이름 user@[내부공용서버ip]:/root/

3. 내부 repo 만들기

[내부 공용 서버에서 작업]

  • 작업은 /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

4. 아파치 repo

4-1. 아파치 설치

다른 서버에서 참조 할 수 있도록 아파치를 만들자
yum install httpd -y

4-2 Document Root

/etc/httpd/httpd.conf를 확인해보면
DocumentRoot "/var/www/html" 로 잡혀있다.

DocumentRoot를 /data/iso 로 참조해도 되지만
심볼릭 링크 를 거는게 훨씬 편하다.

4-3 심볼릭링크

ln -s [원본 디렉토리 or 파일][link 걸릴 디렉토리 or 파일]
ln -s /data/iso /var/www/html/iso

훠얼씬 편하다 !!!

4-4 아파치 실행

systemctl enable httpd --now

5. client 서버

5-1 client 서버 yum repolist

[클라이언트 서버에서 작업]

이제 다른 내부망 클라이언트 서버들의 설정을 진행한다.

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

6. 결론

필요한 패키지들만 넣어주는 것도 좋지만 repo 서버를 만들어서 관리하면
여러개의 서버를 동시에 관리하지 않아도 되니 매우좋다.

profile
oepenpen

0개의 댓글