LabHub

RHEL 계열 관리 · 에어갭 설치 · 실습

에어갭 반입 완주

LabHub 에서 이어서 보기

목표

반입 번들을 만들어 매니페스트로 검증하고, 아카이브로 묶었다 풀고, 저장소를 세워 그것만으로 설치합니다. 폐쇄망 절차 전체를 한 번에 통과합니다.

왜 중요한가

반입 매체에는 rpm 만 담으면 안 됩니다. rpm, repodata, GPG 키, 매니페스트, 체크섬, 설치 절차서 여섯 가지가 다 있어야 하고, 실제로 가장 자주 빠지는 것이 매니페스트와 GPG 키입니다.

그리고 검증은 양방향이어야 합니다. 매니페스트의 모든 파일이 매체에 있는가(누락 검사), 그리고 매체에 매니페스트에 없는 파일이 있는가(추가 검사). 누락은 설치 실패로 금방 드러나지만 추가된 파일은 아무도 모르게 지나갑니다 — 반입 심의 관점에서는 이쪽이 더 위험합니다.

단계

1. /root/airgap/rpms 디렉터리를 만들고, treenano의존성까지 모두(이미 설치된 것도 포함) 그 디렉터리로 내려받으세요.
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, namesnapshot 과 날짜, 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

참고

단계 8개

  1. 반입 번들 수집
  2. 매니페스트 생성
  3. 아카이브로 묶기
  4. 풀고 검증
  5. 저장소 구성
  6. 그 저장소만으로 설치
  7. 모듈 상태 기록
  8. 반입 보고서