5.12. 오프라인 및 Air-gapped 환경에서 bootc 이미지 빌드
인터넷 또는 Red Hat 콘텐츠 전달 네트워크에 연결하지 않고도 bootc 컨테이너 이미지를 빌드할 수 있습니다. 로컬 미러 레지스트리와 RPM 리포지토리를 사용한 다음 컨테이너 이미지를 원시, AMI 또는 ISO와 같은 VM 형식으로 변환합니다.
연결이 끊긴 인프라를 사용하려면 로컬 레지스트리에서 소스 컨테이너 이미지 및 RPM 콘텐츠를 빌드하여 구성해야 합니다. 예를 들면 다음과 같습니다.
- 개인 웹 서버 또는 Red Hat Satellite에서 호스팅되는 개인 컨테이너 레지스트리 및 RPM 리포지토리.
- 인터넷 대신 로컬 리포지토리에서 기본 이미지를 가져옵니다.
- Containerfile은 기본 이미지의 로컬 미러 레지스트리를 가리키며 RPM 콘텐츠에 로컬 HTTP 서버를 사용해야 합니다.
bootc-image-builder 명령을 사용하여 컨테이너를 디스크 이미지로 변환한 후 대기 중인 환경에서 부팅 가능한 RHEL 기반 시스템을 배포할 수 있습니다.
빌드 중인 컨테이너 이미지 내부에 리포지토리 구성을 정의합니다. bootc-image-builder 에서는 호스트 시스템의 리포지토리 설정을 사용할 수 없습니다. 대신 컨테이너 이미지 내에서 직접 리포지토리 구성을 제공해야 합니다.
사전 요구 사항
- 대상 하드웨어에 배포된 Red Hat Enterprise Linux 10이 있는 실행 중인 RHEL 시스템입니다.
-
container-toolsmeta-package가 설치되어 있습니다. - 레지스트리 또는 로컬에 저장된 컨테이너에 액세스합니다.
프로세스
컨테이너 파일을 생성합니다. 예를 들면 다음과 같습니다.
# Base image to point to your internal registry FROM example.com:1234/rhel10/rhel-bootc:10.2 # Configure the local repo to use the files already present in the image # Assuming the repo data is located at /etc/pki/repos or similar inside the image RUN echo -e "[local-baseos]\n\ name=Local RHEL 10 BaseOS\n\ baseurl=file:///path/to/repo/in/image/BaseOS\n\ enabled=1\n\ gpgcheck=0" > /etc/yum.repos.d/local.repo # Install your required packages using the local file source RUN dnf install -y firewalld && \ dnf clean all # Ensure the kernel and bootloader are present # In air-gapped bootc, BIB often fails because it expects to download these. # Pre-installing them ensures they are part of the 'bootc' transition. RUN dnf install -y kernel-bootc anaconda-dracut-modules && dnf clean all-
bootc-image-builder툴을 사용하여 Containerfile을 ISO,raw, QCOW2와 같은 부팅 가능한 형식으로 변환합니다. bootc-image-builder 를 사용하여 bootc 호환 기본 디스크 이미지 생성 을 참조하십시오.
문제 해결
패키지가 이미 캐시된 경우 원시 디스크 이미지가 성공할 수 있습니다. ISO를 빌드하는 경우 osbuild-depsolve-dnf 종속성 문제 해결 프로세스를 트리거할 수 있습니다.
.repo 파일에 gpgkey URL이 포함된 경우 bootc-image-builder 툴은 매니페스트 생성 단계에서 gpg 키를 가져오려고 시도합니다. Air-gapped 환경에서 다음 정보를 확인하십시오.
-
gpgkey매개변수가 이미지에 이미 있는 연결 가능한 로컬 HTTP 서버 또는 파일 경로(예:/etc/pki/rpm-gpg/)를 가리키는지 확인합니다. -
키가 이미 캐시되었거나 건너뛰기 때문에 컨테이너 빌드 중에
dnf install명령이 작동하더라도 ISO 생성 프로세스에서 이러한 키를 다시 무효화할 수 있습니다. 잘못된 URL로 인해GPGKeyReadError또는404 Not Found와 같은 오류가 발생합니다. -
이러한 문제를 해결하려면 GPG 키를 로컬에 저장합니다. GPG 키에 대한 원격 URL을 참조하는 대신 컨테이너 이미지에 키를 포함하고
.repo파일에file:/로 참조합니다. -
빌드 매니페스트오류가 발생하면bootc-image-builder가 실행 중인 네트워크에서 컨테이너의/etc/yum.repos.d/내의 모든 리포지토리 URL과 GPG URL에 연결할 수 있는지 확인합니다.
다음 단계
- 이미지를 배포할 수 있습니다. 오프라인 및 Air-gapped 환경에서 이미지 모드 업데이트 배포를 참조하십시오.