RHEL 계열에서 createrepo와 reposync를 활용한 오프라인 RPM 저장소 구성 방법

2025. 5. 19. 19:28·클라우드 컴퓨팅
728x90

Red Hat 계열 리눅스(RHEL, CentOS, Rocky, AlmaLinux)에서는 시스템 보안, 네트워크 제한, 내부망 환경 등의 이유로 오프라인 YUM/DNF 리포지터리를 구축하는 경우가 많습니다. 이를 위해 createrepo와 reposync 도구를 활용하면 Red Hat 공식 저장소의 패키지를 로컬로 동기화하여 내부 서버에서 사용할 수 있습니다.

본 가이드는 RHEL 7, RHEL 8, RHEL 9 환경에서 오프라인 RPM 저장소를 구축하는 방법과 유의 사항을 정리한 실무 중심 문서입니다.


1. 필요 패키지 설치


yum install -y yum-utils createrepo

RHEL 8/9에서는 dnf 명령도 사용 가능하며, dnf-plugins-core를 설치하면 reposync 기능을 사용할 수 있습니다.


dnf install -y dnf-plugins-core
🔗 Red Hat 공식 문서 - RHEL 8 로컬 리포지터리 구성 가이드

2. RHEL 7 - createrepo 사용한 저장소 구성

RHEL 7에서는 아직 createrepo를 사용해도 모듈 정보가 손실되지 않으므로, reposync + createrepo 방식으로 로컬 리포지터리를 구성할 수 있습니다.


#!/bin/bash

for repo in rhel-7-server-rpms rhel-7-server-debug-rpms rhel-7-server-extras-rpms
do
  reposync -m -p /var/www/html/rhel/debug/ --download-metadata --repo=$repo
  createrepo -v /var/www/html/rhel/debug/$repo -o /var/www/html/rhel/debug/$repo
done
  • -m : groupinstall에 필요한 metadata 포함
  • --download-metadata : repodata 다운로드

3. RHEL 8 - createrepo 사용 금지

RHEL 8에서는 createrepo를 사용하면 AppStream 등의 모듈 데이터가 손실되어 의존성 문제가 발생할 수 있습니다. Red Hat 공식 가이드에서도 reposync만 단독으로 사용할 것을 권장하고 있습니다.

💡 RHEL 8 reposync 스크립트 예제:


#!/bin/bash
subscription-manager release --set=8.4

for repo in \
  rhel-8-for-x86_64-baseos-tus-rpms \
  rhel-8-for-x86_64-appstream-tus-rpms \
  rhel-8-for-x86_64-highavailability-tus-rpms \
  ansible-2.9-for-rhel-8-x86_64-rpms \
  openstack-16.2-for-rhel-8-x86_64-rpms \
  fast-datapath-for-rhel-8-x86_64-rpms
do
  reposync -m -n -p /var/www/html/rhosp16_2/ --download-metadata --repo=$repo
done
  • -n : 최신 버전 패키지만 다운로드

⚠ createrepo 절대 사용 금지! RHEL 8 이상은 모듈 시스템(modulemd)을 포함하기 때문에 repodata가 손상될 수 있습니다.


4. RHEL 9 - RHEL 8과 동일 방식

RHEL 9도 AppStream 모듈 기반이기 때문에 createrepo를 사용하지 않고 reposync 단독으로 저장소를 구성해야 합니다. RHEL 8 방식과 동일한 스크립트를 사용할 수 있으며, repodata는 자동 생성됩니다.


dnf install -y dnf-plugins-core

reposync -m -n --download-metadata --repo=rhel-9-for-x86_64-baseos-rpms --repo=rhel-9-for-x86_64-appstream-rpms -p /repo/rhel9

repodata 디렉터리는 자동으로 포함되며, 별도의 createrepo 실행은 불필요합니다.


5. 클라이언트 YUM/DNF에서 오프라인 저장소 사용

📁 로컬 웹 서버 예시 (Apache 기반)


yum install -y httpd
systemctl enable --now httpd

/etc/yum.repos.d/local.repo에 아래와 같이 정의:


[local-rhel8-baseos]
name=Local RHEL 8 BaseOS
baseurl=http://<서버 IP 또는 도메인>/rhosp16_2/rhel-8-for-x86_64-baseos-tus-rpms
enabled=1
gpgcheck=0

📎 로컬 저장소를 통한 설치 확인


dnf clean all
dnf repolist
dnf install -y httpd

✅ 정리

  • RHEL 7은 reposync + createrepo 사용
  • RHEL 8/9는 reposync만 단독 사용
  • createrepo는 RHEL 8 이상에서는 사용 금지
  • 로컬 리포지터리는 Apache + YUM repo 설정으로 쉽게 구성 가능

Red Hat 환경에서 오프라인 저장소 구성은 보안 규제, 내부망 운영, 대량 설치 자동화를 위한 핵심 요소입니다. 위 내용을 기반으로 리포지터리를 구성하면 안정적이고 유지보수가 쉬운 패키지 저장 환경을 만들 수 있습니다.


728x90
반응형

'클라우드 컴퓨팅' 카테고리의 다른 글

Ceph Monitoring 명령어 정리 (2025년 기준)  (0) 2025.05.16
Ceph Dashboard 활성화 및 사용자 계정 생성 방법  (0) 2025.05.16
Neutron - Allowed Address Pair 기능을 활용한 VIP 설정 가이드  (0) 2025.05.16
OVS CLI 명령어 정리  (0) 2025.05.15
'클라우드 컴퓨팅' 카테고리의 다른 글
  • Ceph Monitoring 명령어 정리 (2025년 기준)
  • Ceph Dashboard 활성화 및 사용자 계정 생성 방법
  • Neutron - Allowed Address Pair 기능을 활용한 VIP 설정 가이드
  • OVS CLI 명령어 정리
레시피 마스터
레시피 마스터
클라우드 환경에서 OS, 자동화, 컴퓨팅등 알고 있는 지식으로 공유하는데 활용
  • 레시피 마스터
    클라우드 구축 레시피
    레시피 마스터
  • 전체
    오늘
    어제
    • 분류 전체보기 (55) N
      • 서버_OS (22) N
      • 가상화 (6) N
      • 클라우드 컴퓨팅 (5)
      • 컨테이너 플랫폼 (11) N
      • 자동화 (3)
      • 데이터베이스 (2)
      • 모니터링 (6)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    private registry
    리눅스 가상화
    리눅스 서버
    리눅스
    Docker
    qcow2 사이즈 줄이기
    오픈소스
    rhocp
    kickstart
    rhel
    RHEL8
    컨테이너
    qcow2 사이즈 축소
    서버 관리
    KVM
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.3
레시피 마스터
RHEL 계열에서 createrepo와 reposync를 활용한 오프라인 RPM 저장소 구성 방법
상단으로

티스토리툴바