RHEL 계열 관리 · 에어갭 설치 · 실습
에어갭 반입 완주
목표
반입 번들을 만들어 매니페스트로 검증하고, 아카이브로 묶었다 풀고, 저장소를 세워 그것만으로 설치합니다. 폐쇄망 절차 전체를 한 번에 통과합니다.
왜 중요한가
반입 매체에는 rpm 만 담으면 안 됩니다. rpm, repodata, GPG 키, 매니페스트, 체크섬, 설치 절차서 여섯 가지가 다 있어야 하고, 실제로 가장 자주 빠지는 것이 매니페스트와 GPG 키입니다.
그리고 검증은 양방향이어야 합니다. 매니페스트의 모든 파일이 매체에 있는가(누락 검사), 그리고 매체에 매니페스트에 없는 파일이 있는가(추가 검사). 누락은 설치 실패로 금방 드러나지만 추가된 파일은 아무도 모르게 지나갑니다 — 반입 심의 관점에서는 이쪽이 더 위험합니다.
단계
1. /root/airgap/rpms 디렉터리를 만들고, tree 와 nano 를 의존성까지 모두(이미 설치된 것도 포함) 그 디렉터리로 내려받으세요.
2. /root/airgap/MANIFEST.tsv 를 만드세요. 첫 줄은 NAME EPOCH VERSION RELEASE ARCH SHA256 FILE 헤더(탭 구분)이고, 각 rpm 에 대해 한 줄씩 그 값을 채워야 합니다. epoch 가 없는 패키지는 0 으로 채우세요.
3. rpms 디렉터리와 매니페스트를 /root/airgap/bundle.tar.gz 로 묶고, 그 아카이브의 sha256 을 /root/airgap/bundle.sha256 에 저장하세요.
4. /root/airgap/unpacked/ 에 아카이브를 풀고, 매니페스트의 체크섬과 실제 파일을 대조한 결과를 /root/airgap/verify.txt 에 저장하세요. 그리고 매니페스트에 없는데 디렉터리에 있는 파일의 개수를 숫자 한 줄로 /root/airgap/extra.txt 에 적으세요(0 이어야 합니다).
5. /root/airgap/unpacked/rpms 에 메타데이터를 만들고, /etc/yum.repos.d/airgap.repo 를 작성하세요. 저장소 ID 는 airgap-local, name 에 snapshot 과 날짜, baseurl=file:///root/airgap/unpacked/rpms, enabled=1, gpgcheck=0, metadata_expire=-1 을 포함해야 합니다.
6. 다른 저장소를 모두 끄고 airgap-local 만 켠 상태로 tree 를 재설치하고, 출력을 /root/airgap/install.txt 로 저장하세요.
7. 상태 기록을 남기세요. /root/airgap/state-modules.txt 에 모듈 목록을, /root/airgap/state-userinstalled.txt 에 사용자 설치 목록을 저장하세요.
8. /root/airgap/report.txt 를 다음 6줄로 만드세요.BUNDLE_ID=airgap-<오늘 날짜 YYYY-MM-DD> / PACKAGES=<rpms 안 .rpm 개수> / MANIFEST_LINES=<매니페스트의 헤더 제외 줄 수> / VERIFY=OK / EXTRA=0 / INSTALLED_FROM=airgap-local
참고
- 내려받기는
dnf download --resolve --alldeps --destdir=/root/airgap/rpms tree nano입니다. - NEVRA 뽑기:
rpm -qp --queryformat '%{NAME}\t%|EPOCH?{%{EPOCH}}:{0}|\t%{VERSION}\t%{RELEASE}\t%{ARCH}' <파일> - 매니페스트에 없는 파일 찾기:
comm -13 <(정렬된 매니페스트 파일명) <(정렬된 실제 파일명) - 저장소 하나만 쓰기:
dnf --disablerepo='*' --enablerepo=airgap-local install -y tree(이미 깔려 있으면install --reinstall이 아니라reinstall서브커맨드를 쓰세요 — 이 dnf 에서는 앞의 형태가 오류입니다) - 흔한 실수 1: 2번에서 epoch 가
(none)으로 들어가는 경우. 삼항 표기로 0 을 채우세요. - 흔한 실수 2: 4번에서 매니페스트를 절대 경로로 만들어 다른 디렉터리에서 대조가 깨지는 경우.
단계 8개
- 반입 번들 수집
- 매니페스트 생성
- 아카이브로 묶기
- 풀고 검증
- 저장소 구성
- 그 저장소만으로 설치
- 모듈 상태 기록
- 반입 보고서