5장. 이미지 빌더 명령줄을 사용하여 에지 이미지 작성

이미지 빌더를 사용하여 사용자 지정 RHEL for Edge 이미지(OSTree 커밋)를 생성할 수 있습니다.

이미지 빌더에 액세스하고 사용자 지정 RHEL for Edge 이미지를 생성하려면 RHEL 웹 콘솔 인터페이스 또는 명령줄 인터페이스를 사용할 수 있습니다.

네트워크 기반 배포의 경우 CLI를 사용하여 엣지 이미지에 대해 RHEL을 구성하는 워크플로에는 다음과 같은 고급 단계가 포함됩니다.

  1. 에지 이미지용 RHEL에 대한 청사진 생성
  2. 엣지용 RHEL 이미지 생성
  3. 엣지용 RHEL 이미지 다운로드

비네트워크 기반 배포의 경우 CLI를 사용하여 에지 이미지에 대해 RHEL을 구성하는 워크플로에는 다음과 같은 상위 수준 단계가 포함됩니다.

  1. 에지 이미지용 RHEL에 대한 청사진 생성
  2. RHEL for Edge Installer 이미지 생성
  3. 엣지 컨테이너 이미지용 RHEL 생성
  4. 엣지 설치 프로그램 이미지용 RHEL 생성
  5. Edge 이미지용 RHEL 다운로드

단계를 수행하려면 composer-cli 패키지를 사용합니다.

참고

composer-cli 명령을 루트가 아닌 상태로 실행하려면 weldr 그룹의 일부여야 합니다. 또는 시스템에 대한 관리자 액세스 권한이 있어야 합니다.

5.1. 네트워크 기반 배포 워크플로

이는 OSTree 커밋을 빌드하는 방법에 대한 단계를 제공합니다. 이러한 OSTree 커밋에는 전체 운영 체제가 포함되어 있지만 직접 부팅 가능한 것은 아닙니다. 부팅하려면 Kickstart 파일을 사용하여 배포해야 합니다.

5.1.1. 이미지 빌더 명령줄 인터페이스를 사용하여 EdgeECDHE 이미지용 RHEL 생성

CLI를 사용하여 엣지용 RHEL에 대한 기능 생성.

사전 요구 사항

  • 이미 존재하는 것은 없습니다. 이를 확인하려면 기존 목록을 표시합니다.

    $ sudo composer-cli blueprints list

절차

  1. 다음 콘텐츠를 사용하여 TOML 형식으로 일반 텍스트 파일을 생성합니다.

    name = "blueprint-name"
    description = "blueprint-text-description"
    version = "0.0.1"
    modules = [ ]
    groups = [ ]

    다음과 같습니다.

    • Blueprint-name 은 이름이며,akak-text-description은ak값에 대한 설명입니다.
    • 0.0.1 은 Semantic Versioning scheme에 따른 버전 번호입니다.
    • 모듈은 패키지 이름과 이미지에 설치할 버전 glob를 설명합니다(예: 패키지 이름 = "tmux" 및 일치하는 버전 glob는 version = "2.9a"입니다.

      현재 패키지와 모듈에는 차이점이 없습니다.

    • 그룹은 이미지에 설치할 패키지 그룹입니다(예: 그룹 패키지 anaconda-tools).

      현재 모듈과 그룹을 모르는 경우 비워 둡니다.

  2. 필요한 패키지를 포함하고 요구 사항에 맞게 청사진의 다른 세부 정보를 사용자 지정합니다.

    청사진에 포함하려는 모든 패키지에 대해 다음 행을 파일에 추가합니다.

    [[packages]]
    name = "package-name"
    version = "package-version"

    다음과 같습니다.

    • package-name은 httpd, gdb-doc 또는 coreutils와 같은 패키지의 이름입니다.
    • package-version은 사용할 패키지의 버전 번호입니다.

      package-version은 다음과 같은 dnf 버전 사양을 지원합니다.

    • 특정 버전의 경우 8.0과 같은 정확한 버전 번호를 사용하십시오.
    • 사용 가능한 최신 버전의 경우 별표 *를 사용합니다.
    • 최신 마이너 버전의 경우 8.*과 같은 형식을 사용하십시오.
  3. 블루프린트를 RHEL 이미지 빌더 서버로 푸시(가져오기)합니다.

    # composer-cli blueprints push blueprint-name.toml
  4. 기존akak을 나열하여 생성된 청사진을 성공적으로 푸시하고 있는지 확인합니다.

    # composer-cli blueprints show BLUEPRINT-NAME
  5. EgressIP 및 해당 종속 항목에 나열된 구성 요소 및 버전이 유효한지 확인합니다.

    # composer-cli blueprints depsolve blueprint-name

5.1.2. 이미지 빌더 명령줄 인터페이스를 사용하여 EdgeECDHE 이미지용 RHEL 생성

RHEL 이미지 빌더 명령줄 인터페이스를 사용하여 RHEL for Edge 커밋 이미지를 생성하려면 다음 사전 요구 사항을 충족했는지 확인하고 절차를 따르십시오.

사전 요구 사항

  • RHEL for Edge 커밋 이미지의 블루프린트를 생성했습니다.

절차

  1. 엣지용 RHEL 이미지를 생성합니다.

    # composer-cli compose start blueprint-name image-type

    다음과 같습니다.

    • Blueprint-name 은 Edge Blueprint 이름에 대한 RHEL입니다.
    • 이미지 유형네트워크 기반 배포의 edge- commit 입니다.

      composer 프로세스가 큐에 추가되었음을 확인합니다. 또한 생성된 이미지의 UUID(Universally Unique Identifier) 번호를 표시합니다. UUID 번호를 사용하여 빌드를 추적합니다. 또한 추가 작업을 위해 UUID 번호를 편리하게 유지합니다.

  2. 이미지 작성 상태를 확인합니다.

    # composer-cli compose status

    출력에는 다음 형식의 상태가 표시됩니다.

    <UUID> RUNNING date blueprint-name blueprint-version image-type
    참고

    이미지 생성 프로세스를 완료하는 데 최대 20분이 걸립니다.

    이미지 생성 프로세스를 중단하려면 다음을 실행합니다.

    # composer-cli compose cancel <UUID>

    기존 이미지를 삭제하려면 다음을 실행합니다.

    # composer-cli compose delete <UUID>

    이미지가 준비되면 다운로드한 후 네트워크 배포에서 이미지를 사용할 수 있습니다.

5.1.3. RHEL 이미지 빌더 CLI를 사용하여 참조 커밋을 사용하여 RHEL for Edge 이미지 업데이트 생성

기존의 경우(예: 새 패키지를 추가한 경우) 새 패키지를 추가한 경우 --parent 인수를 사용하여 Edge Commit(.tar) 이미지에 업데이트된 RHEL을 생성할 수 있습니다. --parent 인수는 URL 인수로 지정된 리포지토리에 존재하는 참조 이거나 추출된 .tar 이미지 파일에서 찾을 수 있는 Commit ID 를 사용할 수 있습니다. refCommit ID 인수는 모두 빌드 중인 새 커밋에 대해 부모를 검색합니다. RHEL 이미지 빌더는 빌드 중인 새 커밋의 일부에 영향을 미치는 상위 커밋에서 정보를 읽을 수 있습니다. 결과적으로 RHEL 이미지 빌더는 상위 커밋의 사용자 데이터베이스를 읽고 패키지에서 생성한 시스템 사용자 및 그룹의 UID 및 GID를 유지합니다.

사전 요구 사항

  • Edge 이미지용 RHEL에 대한 기존 청사진을 업데이트했습니다.
  • Edge 이미지용 기존 RHEL(OSTree 커밋)이 있습니다. RHEL for Edge 이미지 커밋 추출 을 참조하십시오.
  • 빌드 중인 ref 는 URL로 지정된 OSTree 리포지토리에서 사용할 수 있습니다.

절차

  1. 에지 커밋 이미지를 위한 RHEL을 만듭니다.

    # composer-cli compose start-ostree --ref rhel/8/x86_64/edge --parent parent-OSTree-REF --url URL blueprint-name image-type

    예를 들어 다음과 같습니다.

    • 상위 및 새 참조를 기반으로 새 RHEL for Edge 커밋을 생성하려면 다음 명령을 실행합니다.

      # composer-cli compose start-ostree --ref rhel/8/x86_64/edge --parent rhel/8/x86_64/edge --url http://10.0.2.2:8080/repo rhel_update edge-commit
    • 동일한 ref 를 기반으로 Edge 커밋을 위한 새 RHEL을 생성하려면 다음 명령을 실행합니다.

      # composer-cli compose start-ostree --ref rhel/8/x86_64/edge --url http://10.0.2.2:8080/repo rhel_update edge-commit

      다음과 같습니다.

      • --ref 인수는 OSTree 리포지토리를 빌드하는 데 사용한 것과 동일한 경로 값을 지정합니다.
      • --parent 인수는 상위 커밋을 지정합니다. 해결 및 가져올 수 있는 참조(예: rhel/8/x86_64/edge ) 또는 추출된 .tar 파일에서 찾을 수 있는 커밋 ID 입니다.
      • Blueprint-name 은 Edge Blueprint 이름에 대한 RHEL입니다.
      • --url 인수는 이미지에 포함할 커밋의 OSTree 리포지토리에 대한 URL을 지정합니다(예: http://10.0.2.2:8080/repo).
      • 이미지 유형네트워크 기반 배포의 edge- commit 입니다.

        참고
        • --parent 인수는 RHEL for Edge Commit(.tar) 이미지 유형에만 사용할 수 있습니다. --url--parent 인수를 함께 사용하면 RHEL for Edge Container(.tar) 이미지 유형이 오류가 발생합니다.
        • 상위 ref 인수를 생략하면 시스템은 --ref 인수로 지정된 ref 로 대체됩니다.

        composer 프로세스가 큐에 추가되었음을 확인합니다. 또한 생성된 이미지의 UUID(Universally Unique Identifier) 번호를 표시합니다. UUID 번호를 사용하여 빌드를 추적합니다. 또한 추가 작업을 위해 UUID 번호를 편리하게 유지합니다.

  2. 이미지 작성 상태를 확인합니다.

    # composer-cli compose status

    출력에는 다음 형식의 상태가 표시됩니다.

    <UUID> RUNNING date blueprint-name blueprint-version image-type
    참고

    이미지 생성 프로세스를 완료하는 데 몇 분이 걸립니다.

    (선택 사항) 이미지 생성 프로세스를 중단하려면 다음을 실행합니다.

    # composer-cli compose cancel <UUID>

    (선택 사항) 기존 이미지를 삭제하려면 다음을 실행합니다.

    # composer-cli compose delete <UUID>

이미지 생성이 완료되면 기존 OSTree 배포를 업그레이드하려면 다음이 필요합니다.

  • 리포지토리를 설정합니다. 엣지 이미지용 RHEL 배포를 참조하십시오.
  • 이 리포지토리를 원격, 즉 OSTree 콘텐츠를 호스팅하는 http 또는 https 엔드포인트로 추가합니다.
  • 새 OSTree 커밋을 기존 실행 중인 인스턴스에 가져옵니다. 수동으로 에지 이미지 업데이트용 RHEL 배포를 참조하십시오.

5.1.4. 이미지 빌더 명령줄 인터페이스를 사용하여 에지 이미지용 RHEL 다운로드

RHEL 이미지 빌더 명령줄 인터페이스를 사용하여 RHEL for Edge 이미지를 다운로드하려면 다음 사전 요구 사항을 충족했는지 확인한 다음 절차를 따르십시오.

사전 요구 사항

  • Edge 이미지용 RHEL을 생성했습니다.

절차

  1. Edge 이미지 상태에 대한 RHEL을 검토합니다.

    # composer-cli compose status

    출력에 다음이 표시되어야 합니다.

    $ <UUID> FINISHED date blueprint-name blueprint-version image-type
  2. 이미지를 다운로드합니다.

    # composer-cli compose image <UUID>

    RHEL 이미지 빌더는 이미지를 tar 파일로 현재 디렉터리에 다운로드합니다.

    UUID 번호 및 이미지 크기가 함께 표시됩니다.

    $ <UUID>-commit.tar: size MB

이미지에는 리포지토리 콘텐츠에 대한 정보 메타데이터가 포함된 커밋 및 json 파일이 포함되어 있습니다.