포스트

폐쇄망 환경에서 서비스 운영을 위한 환경 구축 방법

외부 환경에서 dnf download --resolve로 의존성까지 받아 내부망에서 rpm으로 설치하는 흐름. postgresql15, java11, nginx 사례.

폐쇄망 환경에서 서비스 운영을 위한 환경 구축 방법

인터넷이 끊긴 폐쇄망(air-gapped) 서버에는 dnf install이 원격 저장소를 못 받아 그대로 실패한다. 해결의 핵심은 인터넷이 되는 동일 환경에서 의존성까지 통째로 내려받아, 그 rpm 묶음을 내부망으로 옮겨 설치하는 것이다.

흐름은 세 단계로 같다.

  1. 대상과 같은 OS·아키텍처 컨테이너를 띄운다 (재현 가능한 다운로드 환경).
  2. dnf download --resolve로 패키지 + 의존성 rpm을 한 폴더에 모은다.
  3. rpm 묶음을 폐쇄망으로 옮겨 rpm -ivh *.rpm으로 설치한다.

아래는 postgresql15·java11·nginx 세 가지 사례다.

1. 동일 환경 컨테이너 생성

  1. 시스템 아키텍처 확인
    1
    
    uname -m
    
  2. 동일 환경 컨테이너 생성
    1
    
    sudo docker run --platform linux/amd64 -it rockylinux:8 /bin/bash  # 아키텍처에 맞는 이미지 사용
    
  3. dnf util 설치
    1
    
    dnf install -y dnf-utils  # dnf 명령어 사용을 위한 패키지 다운로드
    

2. 각 패키지 다운로드 (ex> postgresql15, java11, nginx)

postgresql15

  1. postgres 폐쇄망용 패키지 준비
    1
    2
    3
    4
    
    dnf module list postgresql  # 설치 가능한 postgresql 버전 확인
    dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm  # 다른 버전 사용 원할시 저장소 연결
    dnf -qy module disable postgresql  # 기존 기본 postgresql 모듈 별칭 비활성화
    dnf download --resolve postgresql15-server -y  # --resolve를 통해서 의존성 패키지 모두 설치
    
  2. 폐쇄망 설치 (1.파일을 내부망 환경에 이동 후)
    1
    2
    3
    4
    
    rpm -ivh *.rpm    # 옮긴 패키지 모두 설치
    /usr/pgsql-15/bin/postgresql-15-setup initdb   # postgresql 초기화
    systemctl enable postgresql-15    # 부팅시 자동 실행
    systemctl start postgresql-15    # 서비스 시작
    

java11

  1. java 폐쇄망용 패키지 준비
    1
    2
    
    dnf list java*jdk-devel   # 설치 가능한 java 버전 확인
    dnf download --resolve java-11-openjdk-devel.x86_64 -y    # --resolve를 통해서 의존성 패키지 모두 설치
    
  2. 폐쇄망 설치 (1.의 파일을 내부망 환경에 이동 후)
    1
    2
    3
    4
    5
    
    rpm -ivh *.rpm    # 옮긴 패키지 모두 설치
    #
    echo "export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.12.0.7-0.el8_4.x86_64" >> /etc/profile  # JAVA_HOME 설정
    source /etc/profile
    echo $JAVA_HOME
    

nginx

  1. nginx 폐쇄망용 패키지 준비
    1
    2
    
    dnf list nginx    # 설치 가능한 nginx 버전 확인
    dnf download --resolve nginx    # --resolve를 통해서 의존성 패키지 모두 설치
    
  2. 폐쇄망 설치 (1.의 파일을 내부망 환경에 이동 후)
    1
    2
    3
    4
    5
    
    rpm -ivh *.rpm   # 옮긴 패키지 모두 설치
    #
    # nginx 설정 변경 (ex> /etc/nginx/nginx.conf)
    systemctl enable nginx
    systemctl start nginx
    
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.