CentOS, RHEL에 ISO 파일로 로컬 yum 저장소(Local yum repository) 만들기
외부 인터넷이 차단된 서버(off-line server) 에 설치 ISO Image 파일을 업로드해서 yum 저장소를 만들고 패키지 설치 및 업데이트하는 방법을 설명합니다.
지원이 끝난 CentOS 6 용 외부 저장소를 설정하려면 지원 종료된 CentOS 6 저장소(Repository) 설정하기 를 참고하세요.
보안 정책등으로 외부 인터넷이 차단된 서버를 운영할 경우가 있습니다. 이런 서버에서 신규 패키지 설치나 업데이트를 위해 .rpm 을 업로드해도 의존성이 있는 패키지가 있을수 있으므로 관리가 매우 까다롭습니다.
이럴 때 ISO 이미지로 local 이나 내부 네트워크에 yum 저장소를 만들면 간편하게 문제를 해결할 수 있습니다.
Local Repository 생성
- 설치 dvd 다운로드합니다. 예로 CentOS 는 http://isoredirect.centos.org/centos/8/isos/x86_64/ 에서 받을 수 있습니다.
mount 할 폴더를 생성합니다.
mkdir -p /var/www/repos/centos
다운받은 iso 파일을 서버에 올린 후에 mount 합니다.
mount -o loop CentOS-6.10-x86_64-bin-DVD1.iso /var/www/repos/centos
repository 정보를 설정하기 위해 /etc/yum.repos.d/local.repo 를 에디터로 열고 다음 repository 설정을 넣습는다.
[local-repo] name=Local Repository baseurl=file:///var/www/repos/centos enabled=1 gpgcheck=0
이제 다음 명령어를 실행해서 local-repo 가 보이면 정상 설정된 것입니다.
yum repolist | grep local-repo repo id repo name status epel EPEL repository 12,581 local -repo Local Repository 6,713 nginx Nginx Repository x86_64 - Archive 208
Web Server 에 구성
위 방법은 서버마다 설정해야 하므로 관리하는 서버가 많을 경우 반복 작업을 해야 합니다.
이럴 때 Web Server 에 내부 네트워크용 저장소를 설정하면 다른 서버에서는 저장소 주소만 등록하면 되므로 편리하게 사용할 수 있습니다.
Repository 를 제공할 서버의 IP 는 192.168.10.10 이라 가정합니다.
서버 설정
- 저장소로 사용할 서버(Ex: 192.168.10.10) 에 ssh 로 연결합니다.
- CentOS 나 RHEL 의 설치 dvd(CentOS-6.10-x86_64-bin-DVD1.iso) 를 저장소 서버에 업로드합니다.
mount 할 폴더를 만드는데 Web Server 로 제공할 것이므로 /var/www/하단에 생성합니다
mkdir -p /var/www/repos/centos/iso
업로드한 설치 iso 를 mount 합니다.
mount -o loop /var/iso-file/CentOS-6.10-x86_64-bin-DVD1.iso /var/www/repos/centos/iso/
또는 부팅시 자동으로 마운트 되도록 /etc/fstab 에 다음 내용을 추가합니다.
/var/iso-file/CentOS-6.10-x86_64-bin-DVD1.iso /var/www/repos/centos/iso/ iso9660 loop 0 0
yum repository 를 생성할 수 있는 패키지인 createrepo를 설치합니다.
yum install createrepo -y
repository index를 생성합니다. (시간이 꽤 많이 걸립니다.)
cd /var/www/repos/centos createrepo .
client 설정
- repository 를 사용할 서버에 연결합니다.
repository 정보를 설정하기 위해 /etc/yum.repos.d/centos-internal.repo 를 에디터로 열고 다음 내용을 추가합니다.
[internal-repo] name=Internal Repository baseurl=http://192.168.10.10/repos/centos/iso enabled=1 gpgcheck=0
다음 명령을 실행해서 저장소가 보이는지 확인합니다.
yum repolist | grep internal-repo
이제 정상적으로 yum install 이나 yum update 명령을 사용하면 됩니다.
시스템 안정성 및 보안 패치를 위해 새로운 버전이 나올 경우 주기적으로 iso Image 를 업로드하고 위 작업을 다시 실행해야 합니다.