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
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 환경에서 오프라인 저장소 구성은 보안 규제, 내부망 운영, 대량 설치 자동화를 위한 핵심 요소입니다. 위 내용을 기반으로 리포지터리를 구성하면 안정적이고 유지보수가 쉬운 패키지 저장 환경을 만들 수 있습니다.
'클라우드 컴퓨팅' 카테고리의 다른 글
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 |