외부 인터넷이 차단된 서버(off-line server) 에 설치 ISO Image 파일을 업로드해서 yum 저장소를 만들고 패키지 설치 및 업데이트하는 방법을 설명합니다.

지원이 끝난 CentOS 6 용 외부 저장소를 설정하려면 지원 종료된 CentOS 6 저장소(Repository) 설정하기 를 참고하세요.


보안 정책등으로 외부 인터넷이 차단된 서버를 운영할 경우가 있습니다. 이런 서버에서 신규 패키지 설치나 업데이트를 위해 .rpm 을 업로드해도 의존성이 있는 패키지가 있을수 있으므로 관리가 매우 까다롭습니다.

이럴 때 ISO 이미지로 local 이나 내부 네트워크에 yum 저장소를 만들면 간편하게 문제를 해결할 수 있습니다.

Local Repository 생성

  1. 설치 dvd  다운로드합니다. 예로 CentOS 는 http://isoredirect.centos.org/centos/8/isos/x86_64/ 에서 받을 수 있습니다.
  2. mount 할 폴더를 생성합니다.

    mkdir -p /var/www/repos/centos
    BASH
  3. 다운받은 iso 파일을 서버에 올린 후에 mount 합니다.

    mount -o loop CentOS-6.10-x86_64-bin-DVD1.iso /var/www/repos/centos
    BASH
  4. repository 정보를 설정하기 위해 /etc/yum.repos.d/local.repo 를 에디터로 열고 다음 repository 설정을 넣습는다.

    [local-repo]
    name=Local Repository
    baseurl=file:///var/www/repos/centos
    enabled=1
    gpgcheck=0
    BASH

이제 다음 명령어를 실행해서 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
BASH


Web Server 에 구성

위 방법은 서버마다 설정해야 하므로 관리하는 서버가 많을 경우 반복 작업을 해야 합니다.

이럴 때 Web Server 에 내부 네트워크용 저장소를 설정하면 다른 서버에서는 저장소 주소만 등록하면 되므로 편리하게 사용할 수 있습니다.

Repository 를 제공할 서버의 IP 는 192.168.10.10 이라 가정합니다.

서버 설정

  1. 저장소로 사용할 서버(Ex: 192.168.10.10) 에 ssh 로 연결합니다.
  2. CentOS 나 RHEL 의 설치 dvd(CentOS-6.10-x86_64-bin-DVD1.iso) 를 저장소 서버에 업로드합니다.
  3. mount 할 폴더를 만드는데 Web Server 로 제공할 것이므로 /var/www/하단에 생성합니다

    mkdir -p /var/www/repos/centos/iso
    BASH
  4. 업로드한 설치 iso 를 mount 합니다.

    mount -o loop /var/iso-file/CentOS-6.10-x86_64-bin-DVD1.iso /var/www/repos/centos/iso/
    BASH

    또는 부팅시 자동으로 마운트 되도록 /etc/fstab 에 다음 내용을 추가합니다.

    /var/iso-file/CentOS-6.10-x86_64-bin-DVD1.iso /var/www/repos/centos/iso/ iso9660 loop 0 0
    BASH
  5. yum repository 를 생성할 수 있는 패키지인 createrepo를 설치합니다. 

    yum install createrepo -y
    BASH
  6. repository index를 생성합니다. (시간이 꽤 많이 걸립니다.)

    cd /var/www/repos/centos
    createrepo  .
    BASH

client 설정

  1. repository 를 사용할 서버에 연결합니다.
  2. 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
    BASH

다음 명령을 실행해서 저장소가 보이는지 확인합니다.

yum repolist | grep internal-repo
BASH


이제 정상적으로 yum install 이나 yum update 명령을 사용하면 됩니다.


시스템 안정성 및 보안 패치를 위해 새로운 버전이 나올 경우 주기적으로 iso Image 를 업로드하고 위 작업을 다시 실행해야 합니다.


같이 보기