에지 이미지용 RHEL 설치 및 관리

Red Hat Enterprise Linux 8

Red Hat Enterprise Linux 8의 에지 이미지용 RHEL 컴포지팅, 설치 및 관리

초록

이 문서는 이미지 빌더 툴을 사용하여 사용자 지정 RHEL(rpm-ostree) 이미지를 구성한 다음 에지 서버에서 이미지를 원격으로 설치 및 관리하려는 사용자를 위한 것입니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서 및 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

Red Hat 문서에 관한 피드백 제공

문서에 대한 피드백에 감사드립니다. 어떻게 개선할 수 있는지 알려주십시오.

특정 문구에 대한 의견 제출

  1. Multi-page HTML 형식으로 설명서를 보고 페이지가 완전히 로드된 후 오른쪽 상단 모서리에 피드백 버튼이 표시되는지 확인합니다.
  2. 커서를 사용하여 주석 처리할 텍스트 부분을 강조 표시합니다.
  3. 강조 표시된 텍스트 옆에 표시되는 피드백 추가 버튼을 클릭합니다.
  4. 의견을 추가하고 제출 을 클릭합니다.

Bugzilla를 통해 피드백 제출(등록 필요)

  1. Bugzilla 웹 사이트에 로그인합니다.
  2. 버전 메뉴에서 올바른 버전을 선택합니다.
  3. Summary (요약) 필드에 설명 제목을 입력합니다.
  4. Description (설명) 필드에 개선을 위한 제안을 입력합니다. 문서의 관련 부분에 대한 링크를 포함합니다.
  5. 버그 제출을 클릭합니다.

1장. 에지 이미지용 RHEL 소개

Edge 이미지의 RHEL은 에지 서버에 RHEL을 원격으로 설치하는 시스템 패키지가 포함된 rpm-ostree 이미지입니다.

시스템 패키지에는 다음이 포함됩니다.

  • 기본 OS 패키지
  • Podman을 컨테이너 엔진으로
  • 추가 RPM 콘텐츠

RHEL 이미지와 달리, Edge용 RHEL은 변경할 수 없는 운영 체제입니다. 즉, 다음과 같은 특징이 있는 읽기 전용 루트 디렉터리가 있습니다.

  • 패키지는 루트 디렉터리와 격리됩니다.
  • 패키지 설치에서는 이전 버전으로 쉽게 롤백할 수 있는 계층을 생성합니다.
  • 연결이 끊긴 환경에 대한 효율적인 업데이트
  • 여러 운영 체제 분기 및 리포지토리 지원
  • 하이브리드 rpm-ostree 패키지 시스템 포함

베어 메탈, 어플라이언스 및 에지 서버에 에지 이미지용 RHEL을 배포할 수 있습니다.

이미지 빌더 툴을 사용하여 사용자 지정 RHEL for Edge 이미지를 작성할 수 있습니다. Red Hat Hybrid Cloud Console 플랫폼에서 엣지 관리 애플리케이션에 액세스하여 RHEL for Edge 이미지를 생성하고 자동화된 관리를 구성할 수도 있습니다.

에지 관리 애플리케이션은 이미지를 프로비저닝하고 등록할 수 있는 방법을 단순화합니다. 엣지 관리에 대한 자세한 내용은 Create RHEL for Edge images and configure automated management documentation를 참조하십시오.

Edge용 RHEL 이미지를 사용하면 다음을 달성할 수 있습니다.

주요 기능

1.1. 에지 지원 아키텍처용 RHEL

현재는 AMD 및 Intel 64비트 시스템에 에지 이미지용 RHEL을 배포할 수 있습니다.

참고

현재 Edge용 RHEL은 ARM 시스템을 지원하지 않습니다.

1.2. Edge 이미지용 RHEL을 작성하고 배포하는 방법

Edge 이미지에 대한 RHEL 구성 및 배포에는 다음 두 단계가 포함됩니다.

  1. 이미지 빌더 툴을 사용하여 RHEL rpm-ostree 이미지 컴파일. composer-cli 툴의 명령줄 인터페이스를 통해 이미지 빌더에 액세스하거나 RHEL 웹 콘솔에서 그래픽 사용자 인터페이스를 사용할 수 있습니다.
  2. RHEL 설치 프로그램을 사용하여 이미지 배포.

RHEL for Edge 이미지를 생성하는 동안 다음 이미지 유형 중 하나를 선택할 수 있습니다. 에지 이미지에 다른 RHEL을 생성하는 경우 네트워크 액세스가 필요하지 않을 수 있습니다. 테이블 보기:

표 1.1. 엣지 이미지 유형용 RHEL

이미지 유형설명네트워크 기반 배포에 적합합니다.비 네트워크 기반 배포에 적합합니다.

RHEL for EdgeECDHE(.tar)

커밋 이미지는 전체 운영 체제가 포함되어 있어도 직접 부팅할 수 없습니다. Commit 이미지 유형을 부팅하려면 이 이미지 유형을 배포해야 합니다.

있음

없음

RHEL for Edge 컨테이너 (.tar)

Container는 OSTree 커밋을 생성하고 웹 서버를 사용하여 OCI 컨테이너에 포함합니다. 컨테이너가 시작되면 웹 서버에서 해당 커밋을 OSTree 리포지토리로 제공합니다.

없음

있음

RHEL for Edge Installer(.iso)

RHEL for Edge Installer 이미지 유형은 실행 중인 컨테이너에서 커밋을 가져오고 포함된 OSTree 커밋을 사용하도록 구성된 Kickstart 파일을 사용하여 설치 가능한 부팅 ISO를 생성합니다.

없음

있음

RHEL for Edge Raw image (.raw.xz)

압축된 원시 이미지는 기존의 배포된 OSTree 커밋이 있는 파티션 레이아웃을 포함하는 파일로 구성됩니다. 하드 디스크에서 RHEL Raw Image를 연결하거나 가상 머신에서 부팅할 수 있습니다.

있음

있음

Edge Simplified Installer용 RHEL (.iso)

Simplified Installer 이미지 유형은 실행 중인 컨테이너에서 커밋을 가져오고 포함된 OSTree 커밋을 사용하도록 구성된 Kickstart 파일을 사용하여 설치 가능한 부팅 ISO를 생성합니다.

있음

있음

이미지 유형은 콘텐츠 측면에서 다르므로 다양한 유형의 배포 환경에 적합합니다.

추가 리소스

1.3. 비네트워크 기반 배포

이미지 빌더를 사용하여 요구 사항에 맞게 유연한 RHEL rpm-ostree 이미지를 생성한 다음 Anaconda를 사용하여 환경에 배포합니다.

composer-cli 툴의 명령줄 인터페이스를 통해 이미지 빌더에 액세스하거나 RHEL 웹 콘솔에서 그래픽 사용자 인터페이스를 사용할 수 있습니다.

비 네트워크 기반 배포에서 에지 이미지용 RHEL을 작성 및 배포하려면 다음과 같은 고급 단계가 포함됩니다.

  1. RHEL 시스템 설치 및 등록
  2. 이미지 빌더 설치
  3. 이미지 빌더를 사용하여 에지 컨테이너 이미지용 RHEL에 대한 사용자 지정으로 설정 생성
  4. 이미지 빌더에서 엣지용 RHEL 가져오기
  5. OSTree 리포지토리로 커밋을 배포할 준비가 된 웹 서버를 사용하여 OCI 컨테이너에 포함된 RHEL을 생성
  6. 엣지 컨테이너 이미지 파일용 RHEL 다운로드
  7. 에지 컨테이너 커밋용 RHEL을 사용하여 컨테이너 제공 리포지토리를 배포합니다.
  8. 이미지 빌더를 사용하여 에지 설치 관리자 이미지에 대한 RHEL에 대한 또 다른 기능 생성
  9. Edge Container 이미지에 대해 RHEL에 포함된 실행 중인 컨테이너에서 커밋을 가져오도록 구성된 Edge Installer 이미지에 대한 RHEL 생성
  10. 엣지 설치 프로그램 이미지용 RHEL 다운로드
  11. 설치 실행

다음 다이어그램은 Edge 이미지 비네트워크 배포 워크플로용 RHEL을 나타냅니다.

그림 1.1. 비 네트워크 환경에서 Edge용 RHEL 배포

Edge 비 네트워크 배포 워크플로용 RHEL

1.4. 네트워크 기반 배포

이미지 빌더를 사용하여 요구 사항에 맞게 유연한 RHEL rpm-ostree 이미지를 생성한 다음 Anaconda를 사용하여 환경에 배포합니다. 이미지 빌더에서 배포 설정의 세부 정보를 자동으로 식별하고 .tar 파일로 이미지 출력을 Edge-commit 으로 생성합니다.

composer-cli 툴의 명령줄 인터페이스를 통해 이미지 빌더에 액세스하거나 RHEL 웹 콘솔에서 그래픽 사용자 인터페이스를 사용할 수 있습니다.

다음 상위 수준 단계를 수행하여 에지 이미지의 RHEL을 구성하고 배포할 수 있습니다.

  1. RHEL 시스템 설치 및 등록
  2. 이미지 빌더 설치
  3. 이미지 빌더를 사용하여 엣지 이미지용 RHEL을 생성
  4. 이미지 빌더에서 엣지용 RHEL 가져오기
  5. 엣지용 RHEL(.tar) 이미지 생성
  6. Edge 이미지 파일용 RHEL 다운로드
  7. 웹 서버 설정
  8. RHEL for Edge Installer(.iso)에 대한 새로운 기능 생성
  9. RHEL for Edge Installer(.iso) 아티팩트에서 OSTree 콘텐츠를 가리키는 RHEL for Edge Installer(.iso ) 이미지를 만듭니다.
  10. 생성한 RHEL for Edge 설치 프로그램 ISO 이미지 다운로드
  11. RHEL for Edge Installer ISO 이미지를 사용하여 엣지 장치 부팅

다음 다이어그램은 에지 네트워크 이미지 배포 워크플로용 RHEL을 나타냅니다.

그림 1.2. 네트워크 기반 환경에서 Edge용 RHEL 배포

Edge 네트워크 배포 워크플로용 RHEL

1.5. Edge 이미지에 대한 RHEL RPM 이미지와 RHEL의 차이점

기존 패키지 기반 RPM 형식으로 RHEL 시스템 이미지를 생성하고 Edge용 RHEL(rpm-ostree) 이미지로도 생성할 수 있습니다.

기존 패키지 기반 RPM을 사용하여 기존 데이터 센터에 RHEL을 배포할 수 있습니다. 그러나 RHEL for Edge 이미지를 사용하면 기존 데이터 센터 이외의 서버에 RHEL을 배포할 수 있습니다. 이러한 서버에는 데이터가 생성된 소스와 가장 가까운 양의 데이터를 처리하는 시스템이 포함됩니다.

RHEL for Edge(rpm-ostree) 이미지는 패키지 관리자가 아닙니다. 개별 파일이 아닌 부팅 가능한 전체 파일 시스템만 지원합니다. 이러한 이미지에는 이러한 파일이 생성되는 방법 또는 원본과 관련된 항목과 같은 개별 파일에 대한 정보가 없습니다.

rpm-ostree 이미지에는 추가 애플리케이션을 /var 디렉터리에 설치하려면 별도의 메커니즘인 패키지 관리자가 필요합니다. 이를 통해 rpm-ostree 이미지는 /var/etc 디렉터리의 상태를 유지하면서 운영 체제를 변경하지 않고 유지합니다. 원자 업데이트를 통해 롤백 및 업데이트의 백그라운드 스테이징이 가능합니다.

다음 표를 참조하여 Edge 이미지의 RHEL이 패키지 기반 RHEL RPM 이미지와 어떻게 다른지 확인하십시오.

표 1.2. Edge 이미지에 대한 RHEL RPM 이미지와 RHEL의 차이점

주요 특성

RHEL RPM 이미지

RHEL for Edge 이미지

OS 어셈블리

패키지를 로컬로 어셈블하여 이미지를 구성할 수 있습니다.

패키지는 시스템에 설치할 수 있는 ostree에서 조립됩니다.

OS 업데이트

yum update 를 사용하여 활성화된 리포지토리에서 사용 가능한 업데이트를 적용할 수 있습니다.

rpm-ostree 업그레이드를 사용하여 /etc/ostree/remotes.d/ 의 ostree remote에서 새 커밋을 사용할 수 있는 경우 업데이트를 스테이징할 수 있습니다. 이 업데이트는 시스템 재부팅 시 적용됩니다.

리포지터리

패키지에는 YUM 리포지토리가 포함되어 있습니다.

패키지에는 Ostree 원격 리포지토리가 포함되어 있습니다.

사용자 액세스 권한

쓰기 읽기

읽기 전용 (/usr)

데이터 지속성

이미지가 아닌 tmpfs 마운트 지점에 마운트할 수 있습니다.

/etc & /var 은 읽기-쓰기가 가능하고 영구 데이터를 포함합니다.

2장. 이미지 빌더 설정

이미지 빌더를 사용하여 사용자 지정 RHEL for Edge 이미지를 생성합니다. RHEL 시스템에 이미지 빌더를 설치한 후 RHEL 웹 콘솔에서 이미지 빌더를 애플리케이션으로 사용할 수 있습니다. composer-cli 툴의 명령줄 인터페이스를 통해 이미지 빌더에 액세스할 수도 있습니다.

참고

가상 머신에 이미지 빌더를 설치하는 것이 좋습니다.

이미지 빌더를 설치하려는 환경에서 먼저 시스템 요구 사항을 충족하고 설치해야 합니다.

2.1. 이미지 빌더 시스템 요구 사항

이미지 빌더가 실행되는 환경(예: 가상 머신)은 다음 표에 나열된 요구 사항을 충족해야 합니다.

표 2.1. 이미지 빌더 시스템 요구 사항

매개변수

최소한의 필수 값

시스템 유형

전용 가상 머신

프로세서

코어 2개

메모리

4GiB

디스크 공간

20 GiB

액세스 권한

관리자 수준(root)

네트워크

인터넷 연결

참고

20GiB 디스크 공간 요구 사항은 호스트에서 이미지 빌더를 설치하고 실행하기에 충분합니다. 이미지 빌드를 빌드하고 배포하려면 추가 전용 디스크 공간을 할당해야 합니다.

2.2. 이미지 빌더 설치

전용 가상 머신에 이미지 빌더를 설치하려면 다음 단계를 따르십시오.

사전 요구 사항

  • 가상 시스템이 생성되고 전원이 켜집니다.
  • RHEL을 설치하고 RHSM 또는 Red Hat Satellite를 서브스크립션했습니다.

절차

  1. 가상 머신에 다음 패키지를 설치합니다.

    • osbuild-composer
    • composer-cli
    • cockpit-composer
    • bash-completion
    • firewalld
    # yum install osbuild-composer composer-cli cockpit-composer bash-completion firewalld

    이미지 빌더는 RHEL 웹 콘솔에 애플리케이션으로 설치됩니다.

  2. 가상 머신 재부팅
  3. 웹 콘솔에 대한 액세스를 허용하도록 시스템 방화벽을 구성합니다.

    # firewall-cmd --add-service=cockpit && firewall-cmd --add-service=cockpit --permanent
  4. 이미지 빌더를 활성화합니다.

    # systemctl enable osbuild-composer.socket cockpit.socket --now

    첫 번째 액세스에서 osbuild-composer 및 cockpit 서비스가 자동으로 시작됩니다.

  5. 재부팅하지 않고 composer-cli 명령의 autocomplete 기능이 즉시 작동하도록 쉘 설정 스크립트를 로드합니다.

    $ source /etc/bash_completion.d/composer-cli

추가 리소스

3장. 이미지 빌더 리포지토리 관리

3.1. 이미지 빌더 기본 시스템 리포지토리

osbuild-composer 백엔드는 /etc/yum.repos.d/ 디렉터리에 있는 시스템 리포지토리를 상속하지 않습니다. 대신 /usr/share/osbuild-composer/repositories 디렉터리에 정의된 고유한 공식 리포지토리 세트가 있습니다. 여기에는 추가 소프트웨어를 설치하거나 이미 설치된 프로그램을 최신 버전으로 업데이트하는 기본 시스템 RPM이 포함된 Red Hat 공식 리포지토리가 포함됩니다. 공식 리포지토리를 재정의하려면 /etc/osbuild-composer/repositories 에서 덮어쓰기를 정의해야 합니다. 이 디렉터리는 사용자 정의 재정의용이며 여기에 있는 파일이 /usr 디렉터리의 파일보다 우선합니다.

설정 파일은 /etc/yum.repos.d/ 에 있는 파일에서 알려진 일반적인 YUM 리포지토리 형식이 아닙니다. 대신 간단한 JSON 파일입니다.

3.2. 시스템 리포지토리 덮어쓰기

다음 단계를 사용하여 /etc/osbuild-composer/repositories 디렉터리에서 이미지 빌더의 리포지토리 재정의를 구성할 수 있습니다.

참고

RHEL 8.5 릴리스 이전에는 리포지토리 덮어쓰기 이름이 rhel-8.json 입니다. RHEL 8.5부터 이름은 마이너 버전 rhel-84.json,rhel-85.json 등이 적용됩니다.

사전 요구 사항

  • 호스트 시스템에서 액세스할 수 있는 사용자 지정 리포지토리가 있습니다.

절차

  1. 리포지토리 덮어쓰기를 저장하려는 디렉터리를 생성합니다.

    $ sudo mkdir -p /etc/osbuild-composer/repositories
  2. 고유한 JSON 파일 구조를 생성할 수 있습니다.
  3. RHEL 버전에 해당하는 이름을 사용하여 JSON 파일을 생성합니다. 또는 /usr/share/osbuild-composer/ 에서 배포할 파일을 복사하고 해당 콘텐츠를 수정할 수 있습니다.

    RHEL 8의 경우 /etc/osbuild-composer/repositories/rhel-87.json 을 사용합니다.

  4. JSON 파일에 다음 구조를 추가합니다. 예를 들면 다음과 같습니다.

    {
        "<ARCH>": [
            {
                "name": "baseos",
                "metalink": "",
                "baseurl": "http://mirror.example.com/composes/released/RHEL-8/8.0/BaseOS/x86_64/os/",
                "mirrorlist": "",
                "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\n (…​)",
                "check_gpg": true,
                "metadata_expire": ""
            }
        ]
    }

    다음 속성 중 하나만 지정합니다.

    • 메타링크 - 저장소 링크에서 향상된 가용성 및 오류 수정을 제공합니다.
    • mirrorlist - 패키지 리포지토리를 가리키는 URL 목록입니다.
    • BASEURL - 설치에 필요한 패키지가 포함된 리포지토리에 대한 링크입니다.

      나머지 필드는 선택 사항입니다.

      1. 또는 배포에 사용할 JSON 파일을 복사할 수 있습니다.

        1. 리포지토리 파일을 생성한 디렉터리에 복사합니다. 다음 명령에서 rhel-version.json 을 RHEL 버전으로 교체합니다(예: rhel-8.json).

          $  cp /usr/share/osbuild-composer/repositories/rhel-version.json /etc/osbuild-composer/repositories/
  5. 텍스트 편집기를 사용하여 rhel-8.json 파일의 baseurl 경로를 편집하여 저장합니다. 예를 들어 다음과 같습니다.

    $ vi /etc/osbuild-composer/repositories/rhel-version.json
  6. osbuild-composer.service 를 다시 시작하십시오.

    $ sudo systemctl restart osbuild-composer.service

검증

  • 리포지토리가 올바른 URL을 가리키는지 확인합니다.

    $ cat /etc/yum.repos.d/redhat.repo

    리포지토리가 /etc/yum.repos.d/redhat.repo 파일에서 복사되는 올바른 URL을 가리키는 것을 확인할 수 있습니다.

3.3. 서브스크립션에 대한 지원을 사용하여 시스템 리포지토리 덮어쓰기

osbuild-composer 서비스는 /etc/yum.repos.d/redhat.repo 파일에 정의된 시스템 서브스크립션을 사용할 수 있습니다. osbuild-composer 에서 시스템 서브스크립션을 사용하려면 다음을 포함하는 리포지토리 재정의를 정의합니다.

  • /etc/yum.repos.d/redhat.repo 에 정의된 리포지토리와 동일한 baseurl.
  • JSON 오브젝트에 정의된 "rhsm": true 의 값입니다.

사전 요구 사항

  • 시스템에 /etc/yum.repos.d/redhat.repo에 정의된 서브스크립션이 있습니다.
  • 리포지토리 덮어쓰기를 생성했습니다. 시스템 리포지토리 덮어쓰기 를 참조하십시오.

절차

  1. /etc/yum.repos.d/redhat.repo 파일에서 baseurl 을 가져옵니다.

    # cat /etc/yum.repos.d/redhat.repo
    [AppStream]
    name = AppStream mirror example
    baseurl = https://mirror.example.com/RHEL-8/8.0/AppStream/x86_64/os/
    enabled = 1
    gpgcheck = 0
    sslverify = 1
    sslcacert = /etc/pki/ca1/ca.crt
    sslclientkey = /etc/pki/ca1/client.key
    sslclientcert = /etc/pki/ca1/client.crt
    metadata_expire = 86400
    enabled_metadata = 0
  2. 동일한 baseurl 을 사용하고 rhsm 을 true로 설정하도록 리포지토리 덮어쓰기를 구성합니다.

    {
        "x86_64": [
            {
                "name": "AppStream mirror example",
                "baseurl": "https://mirror.example.com/RHEL-8/8.0/AppStream/x86_64/os/",
                "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\n (…​)",
                "check_gpg": true,
                "rhsm": true
            }
        ]
    }
    참고

    osbuild-composer/etc/yum.repos.d/ 에 정의된 리포지토리를 자동으로 사용하지 않습니다. 수동으로 시스템 리포지토리 덮어쓰기 또는 composer-cli 를 사용하여 추가 소스로 지정해야 합니다. 시스템 리포지토리 덮어쓰기는 일반적으로 "BaseOS" 및 "AppStream" 리포지토리에 사용되지만 composer-cli 소스는 다른 모든 리포지토리에 사용됩니다.

결과적으로 이미지 빌더는 호스트 시스템에서 /etc/yum.repos.d/redhat.repo 파일을 읽고 이를 서브스크립션 소스로 사용합니다.

4장. RHEL 웹 콘솔에서 이미지 빌더를 사용하여 에지 이미지 작성

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

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

다음 고급 단계를 수행하여 RHEL 웹 콘솔에서 이미지 빌더를 사용하여 에지 이미지용 RHEL을 작성할 수 있습니다.

  1. RHEL 웹 콘솔에서 이미지 빌더에 액세스
  2. 에지 이미지용 RHEL에 대한 청사진을 생성합니다.
  3. Edge 이미지용 RHEL을 만듭니다. 다음 이미지를 생성할 수 있습니다.

    • 엣지 애플리케이션용 RHEL 이미지입니다.
    • 엣지 컨테이너 이미지용 RHEL.
    • RHEL for Edge Installer 이미지.
  4. Edge 이미지용 RHEL 다운로드

4.1. RHEL 웹 콘솔에서 이미지 빌더에 액세스

RHEL 웹 콘솔의 이미지 빌더에 액세스하려면 다음 사전 요구 사항을 충족했는지 확인한 후 절차를 따르십시오.

사전 요구 사항

  • RHEL 시스템을 설치했습니다.
  • 시스템에 대한 관리자 권한이 있어야 합니다.
  • RHEL 시스템을 RHSM(Red Hat Subscription Manager) 또는 Red Hat Satellite Server에 가입했습니다.
  • 이 시스템의 전원을 켜고 네트워크를 통해 액세스할 수 있습니다.
  • 시스템에 이미지 빌더가 설치되어 있습니다.

절차

  1. RHEL 시스템의 웹 브라우저에서 https://localhost:9090/ 에 액세스합니다.
  2. 이미지 빌더에 원격으로 액세스하는 방법에 대한 자세한 내용은 RHEL 8 웹 콘솔 문서를 사용하여 시스템 관리를 참조하십시오.
  3. 관리 사용자 계정을 사용하여 웹 콘솔에 로그인합니다.
  4. 웹 콘솔의 왼쪽 메뉴에서 앱을 클릭합니다.
  5. 이미지 빌더 를 클릭합니다.

    오른쪽 창에서 이미지 빌더 대시보드가 열립니다. 이제 Edge 이미지에 대한 RHEL에 대한 청사진을 생성할 수 있습니다.

4.2. RHEL 웹 콘솔에서 이미지 빌더를 사용하여 EdgeECDHE 이미지에 대한 RHEL에 대한 기능 생성

RHEL 웹 콘솔의 이미지 빌더를 사용하여 RHEL for EdgeECDHE 이미지에 대한 것을 생성하려면 다음 사전 요구 사항을 충족했는지 확인한 후 절차를 따르십시오.

사전 요구 사항

  • RHEL 시스템에서 이미지 빌더 대시보드를 엽니다.

절차

  1. 이미지 빌더 대시보드에서 CreateECDHE를 클릭합니다.

    Create Blueprint 대화 상자가 열립니다.

  2. 이름을 지정하고, 생성하려는 예상 설명(선택 사항)을 지정합니다.
  3. 생성을 클릭합니다.

    이미지 빌더 대시보드에는 사용자가 생성한 기능 목록이 나열됩니다.

4.3. RHEL 웹 콘솔에서 이미지 빌더를 사용하여 EdgeECDHE 이미지용 RHEL 생성

".tar" 이미지 유형에는 ".tar " 이미지 유형에는 전체 운영 체제가 포함되어 있지만 직접 부팅 가능한 것은 아닙니다. ECDHE 이미지 유형을 부팅하려면 실행 중인 컨테이너에 배포해야 합니다.

RHEL 웹 콘솔에서 이미지 빌더를 사용하여 EdgeECDHE 이미지에 대한 RHEL을 생성하려면 단계를 따르십시오.

사전 요구 사항

  • RHEL 시스템에서 이미지 빌더 대시보드에 액세스했습니다.

절차

  1. 이미지 빌더 대시보드에서 RHEL for Edge ECDHE 이미지에 대해 생성한 경우 이미지 생성 을 클릭합니다.

    특정 청사진을 검색하려면 Filter By Name (필터별 이름) 텍스트 상자에ak 이름을 입력한 다음 Enter 키를 누릅니다.

  2. 이미지 생성 마법사에서 다음 단계를 수행합니다.

    1. 이미지 출력 페이지의 이미지 출력 유형 드롭다운 목록에서 네트워크 기반 배포에 대해 ".tar "을 선택합니다.
    2. OSTree 페이지에서 다음을 입력합니다.

      1. 리포지토리 URL: 이미지에 포함할 커밋의 OSTree 리포지토리에 대한 URL을 지정합니다. 예: http://10.0.2.2:8080/repository/.
      2. parent commit: 이전 커밋을 지정하거나 현재 커밋이 없는 경우 비워 둡니다.
      3. Ref textbox에서 커밋을 생성할 위치에 대한 참조 경로를 지정합니다. 기본적으로 웹 콘솔은 rhel/8/$ARCH/edge 를 지정합니다. "$ARCH" 값은 호스트 시스템에 의해 결정됩니다. 다음을 클릭합니다.
  3. Customization 페이지 페이지에서 다음을 수행합니다.

    1. 시스템 페이지에서 다음을 수행합니다.

      1. 호스트 이름을 입력합니다. 필드를 비워 두면 시스템에서 호스트 이름을 결정합니다. 다음을 클릭합니다.
    2. 사용자 페이지에서 사용자 추가를 클릭합니다.

      1. 사용자 이름과 암호를 입력합니다.
      2. 선택 사항: SSH 키를 입력하고 서버 관리자 필드를 확인합니다. 다음을 클릭합니다.
    3. 패키지 페이지에서 다음을 수행합니다.

      1. Available packages search 필드에 추가할 패키지를 입력합니다.

        1. &gt ; 버튼을 클릭하여 하나의 패키지를 선택합니다.
        2. 선택 사항: & gt; 버튼을 클릭하여 모든 패키지를 선택합니다. 다음을 클릭합니다.
    4. 검토 페이지에서 사용자 정의를 확인합니다. 저장을 클릭합니다.
  4. 생성을 클릭합니다.

    이미지 빌더는 생성한 IRQ용 RHEL for EdgeECDHE 이미지를 생성하기 시작합니다.

    참고

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

검증

  1. RHEL에서 Edge Commit 이미지 생성 진행 상황을 확인하려면 다음을 수행합니다.

    1. 이름 을 클릭합니다.
    2. 이미지 탭을 클릭합니다.

이미지 생성 프로세스가 완료되면 결과 ".tar" 이미지를 다운로드할 수 있습니다.

4.4. RHEL 웹 콘솔에서 이미지 빌더를 사용하여 에지 컨테이너 이미지 생성

" .tar"을 선택하여 Edge 이미지에 RHEL을 생성할 수 있습니다. 에지 컨테이너(.tar) 이미지 유형의 RHEL 은 OSTree 커밋을 생성하여 웹 서버를 사용하여 OCI 컨테이너에 포함합니다. 컨테이너가 시작되면 웹 서버는 OSTree 리포지토리로 커밋을 제공합니다.

다음 절차의 단계에 따라 RHEL 웹 콘솔에서 이미지 빌더를 사용하여 에지 컨테이너 이미지에 대한 RHEL을 생성합니다.

사전 요구 사항

  • RHEL 시스템에서 이미지 빌더 대시보드에 액세스했습니다.
  • 네, 네게 만들었어.

절차

  1. 이미지 빌더 대시보드에서 RHEL for Edge 컨테이너 이미지용으로 생성한 경우 이미지 생성클릭합니다. 특정 수행을 검색하려면 Filter By Name (이름으로 필터링) 텍스트 상자에 이름을 입력한 다음 Enter 를 누릅니다.
  2. 이미지 생성 마법사에서 다음 단계를 수행합니다.

    1. 이미지 출력 페이지의 이미지 출력 유형 드롭다운 목록에서 네트워크 기반 배포에 대해 ".tar "을 선택합니다.
    2. OSTree 페이지에서 다음을 입력합니다.

      1. 리포지토리 URL: 이미지에 포함할 커밋의 OSTree 리포지토리에 대한 URL을 지정합니다. 예: http://10.0.2.2:8080/repository/.
      2. parent commit: 이전 커밋을 지정하거나 현재 커밋이 없는 경우 비워 둡니다.
      3. Ref textbox에서 커밋을 생성할 위치에 대한 참조 경로를 지정합니다. 기본적으로 웹 콘솔은 rhel/8/$ARCH/edge 를 지정합니다. "$ARCH" 값은 호스트 시스템에 의해 결정됩니다. 다음을 클릭합니다.
  3. Customization 페이지 페이지에서 다음을 수행합니다.

    1. 시스템 페이지에서 다음을 수행합니다.

      1. 호스트 이름을 입력합니다. 필드를 비워 두면 시스템에서 호스트 이름을 결정합니다. 다음을 클릭합니다.
    2. 사용자 페이지에서 사용자 추가를 클릭합니다.

      1. 사용자 이름과 암호를 입력합니다.
      2. 선택 사항: SSH 키를 입력하고 서버 관리자 필드를 확인합니다. 다음을 클릭합니다.
    3. 패키지 페이지에서 다음을 수행합니다.

      1. Available packages search 필드에 추가할 패키지를 입력합니다.

        1. &gt ; 버튼을 클릭하여 하나의 패키지를 선택합니다.
        2. 선택 사항: & gt; 버튼을 클릭하여 모든 패키지를 선택합니다. 다음을 클릭합니다.
    4. 검토 페이지에서 사용자 정의를 확인합니다. 저장을 클릭합니다.
  4. 생성을 클릭합니다.

    이미지 빌더는 생성한 IRQ용 RHEL for EdgeECDHE 이미지를 생성하기 시작합니다.

    참고

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

검증

  1. RHEL에서 Edge Commit 이미지 생성 진행 상황을 확인하려면 다음을 수행합니다.

    1. 이름 을 클릭합니다.
    2. 이미지 탭을 클릭합니다.

이미지 생성 프로세스가 완료되면 결과 ".tar" 이미지를 다운로드할 수 있습니다.

4.5. RHEL 웹 콘솔에서 이미지 빌더를 사용하여 에지 설치 관리자 이미지 생성

Edge Installer (.iso)용 RHEL을 선택하여 비 네트워크 기반 배포용 RHEL for Edge Installer 이미지를 생성할 수 있습니다. RHEL for Edge Installer(.iso) 이미지 유형은 RHEL for Edge 컨테이너 (.tar) 에서 제공하는 실행 중인 컨테이너에서 OSTree 커밋을 가져오고 포함된 OSTree 커밋을 사용하도록 구성된 Kickstart 파일로 설치 가능한 부팅 ISO 이미지를 생성합니다.

다음 절차의 단계에 따라 RHEL 웹 콘솔에서 이미지 빌더를 사용하여 에지 이미지에 대한 RHEL을 생성합니다.

사전 요구 사항

절차

  1. 이미지 빌더 대시보드에서 RHEL for Edge Installer 이미지에 대해 생성한 경우 이미지 생성 을 클릭합니다.

    특정 청사진을 검색하려면 Filter By Name (필터별 이름) 텍스트 상자에ak 이름을 입력한 다음 Enter 키를 누릅니다.

  2. 이미지 생성 마법사에서 다음 단계를 수행합니다.
  3. 이미지 출력 페이지의 Image 출력 유형 드롭다운 목록에서 RHEL for Edge Installer(.iso) 이미지를 선택합니다.

    1. OSTree 페이지에서 다음을 입력합니다.

      1. 리포지토리 URL: 이미지에 포함할 커밋의 OSTree 리포지토리에 대한 URL을 지정합니다. 예: http://10.0.2.2:8080/repository/.
      2. Ref textbox에서 커밋을 생성할 위치에 대한 참조 경로를 지정합니다. 기본적으로 웹 콘솔은 rhel/8/$ARCH/edge 를 지정합니다. "$ARCH" 값은 호스트 시스템에 의해 결정됩니다. 다음을 클릭합니다.
  4. Customization 페이지 페이지에서 다음을 수행합니다.

    1. 시스템 페이지에서 다음을 수행합니다.

      1. 호스트 이름을 입력합니다. 필드를 비워 두면 시스템에서 호스트 이름을 결정합니다. 다음을 클릭합니다.
    2. 사용자 페이지에서 사용자 추가를 클릭합니다.

      1. 사용자 이름과 암호를 입력합니다.
      2. 선택 사항: SSH 키를 입력하고 서버 관리자 필드를 확인합니다. 다음을 클릭합니다.
    3. 패키지 페이지에서 다음을 수행합니다.

      1. Available packages search 필드에 추가할 패키지를 입력합니다.

        1. &gt ; 버튼을 클릭하여 하나의 패키지를 선택합니다.
        2. 선택 사항: & gt; 버튼을 클릭하여 모든 패키지를 선택합니다. 다음을 클릭합니다.
    4. 검토 페이지에서 사용자 정의를 확인합니다. 저장을 클릭합니다.
  5. 생성을 클릭합니다.

    이미지 빌더는 생성한 IRQ용 RHEL for EdgeECDHE 이미지를 생성하기 시작합니다.

    참고

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

검증

  1. RHEL에서 Edge Commit 이미지 생성 진행 상황을 확인하려면 다음을 수행합니다.

    1. 이름 을 클릭합니다.
    2. 이미지 탭을 클릭합니다.

이미지 생성 프로세스가 완료되면 결과 RHEL for Edge Installer(.iso) 이미지를 다운로드할 수 있습니다.

  1. 유형 드롭다운 목록에서 RHEL for Edge Installer(.iso) 를 선택합니다.
  2. Repository URL textbox에서 이미지에 포함할 커밋의 실행 중인 컨테이너 OSTree 리포지토리에 대한 URL을 지정합니다. 예: http://10.0.2.2:8080/repository/.
  3. Parent commit textbox는 이전 커밋을 지정하거나 비워 둘 수 있습니다. 현재 커밋이 없는 경우.
  4. Ref textbox에서 참조 경로는 RHEL for Edge 컨테이너 이미지 작성에서 Ref 와 일치해야 합니다.

    1. 생성을 클릭합니다.

      이미지 빌더는 사용자가 생성한 builder에 대한 RHEL for Edge Installer 이미지를 생성하기 시작합니다.

    2. RHEL에서 에지 설치 프로그램 이미지 생성 진행 상황을 확인하려면 다음을 수행합니다.
  5. 이동 경로에서 청사진 이름을 클릭합니다.
  6. 이미지 탭을 클릭합니다.

    참고

    이미지 생성 프로세스를 완료하는 데 최대 20분이 걸립니다. 이미지 생성 프로세스를 취소하려면 More Options 메뉴에서 Stop 을 클릭합니다.

이미지 생성 프로세스가 완료되면 결과 RHEL for Edge Installer(.iso) 이미지를 다운로드하고 ISO 이미지를 장치로 부팅할 수 있습니다.

4.6. Edge 이미지용 RHEL 다운로드

이미지 빌더를 사용하여 에지 이미지에 대한 RHEL을 성공적으로 생성한 후 로컬 호스트에서 이미지를 다운로드합니다.

절차

이미지를 다운로드하려면 다음을 수행합니다.

  1. More Options 메뉴에서 다운로드를 클릭합니다.

    이미지 빌더 툴은 기본 다운로드 위치에서 파일을 다운로드합니다.

다운로드한 파일은 Edge Commit 및 RHEL for Edge Container 이미지용 RHEL용 OSTree 리포지토리가 있는 .tar 파일 또는 OSTree 리포지터리가 있는 RHEL의 .iso 파일로 구성됩니다. 이 리포지토리에는 리포지토리 콘텐츠에 대한 정보 메타데이터가 포함된 commit 및 json 파일이 포함되어 있습니다.

4.7. 추가 리소스

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

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

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

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

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

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

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

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

참고

root가 아닌 경우 composer-cli 명령을 실행하려면 weldr 그룹의 일부이거나 시스템에 대한 관리자 액세스 권한이 있어야 합니다.

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

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

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

CLI를 사용하여 에지 커밋 이미지에 대한 RHEL을 생성합니다.

사전 요구 사항

  • 기존 이메일은 없습니다. 이를 확인하기 위해 기존 tekton를 나열하십시오.

    $ 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. 이미지 빌더 서버로 푸시(import)합니다.

    # 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 생성

이미지 빌더 명령줄 인터페이스를 사용하여 EdgeECDHE 이미지에 대한 RHEL을 생성하려면 다음 사전 요구 사항을 충족하고 절차를 따르십시오.

사전 요구 사항

  • Edge Commit 이미지에 대한 RHEL에 대한 청사진을 생성했습니다.

절차

  1. Edge Commit 이미지에 대한 RHEL을 만듭니다.

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

    다음과 같습니다.

    • Blueprint-name 은 Edge Blueprint 이름에 대한 RHEL입니다.
    • image-type네트워크 기반 배포의 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을 업데이트하여 상위 커밋 ID를 사용하여 에지 Commit(.tar) 이미지에 대해 업데이트된 RHEL을 생성할 수 있습니다.

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

사전 요구 사항

  • Edge 이미지용 RHEL에 대한 기존 청사진을 업데이트했습니다.
  • Edge 이미지용 기존 RHEL(OSTree 커밋)이 있습니다. 에지 이미지 커밋용 RHEL 추출 을 참조하십시오.

절차

  1. Edge 이미지에 사용할 RHEL을 만듭니다.

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

    다음과 같습니다.

    • --ref 는 OSTree 리포지토리를 빌드하는 데 사용한 경로 값과 동일합니다.
    • --parent 는 상위 OSTree Ref입니다(예: rhel/9/x86_64/edge ).
    • Blueprint-name 은 Edge Blueprint 이름에 대한 RHEL입니다.
    • - URL은 이미지에 포함할 커밋의 OSTree 리포지토리의 URL입니다(예: http://10.0.2.2:8080/repository/).
    • image-type네트워크 기반 배포의 edge- commit 입니다.

      참고

      --parent 인수는 RHEL for EdgeECDHE(.tar) 이미지 유형에서만 사용할 수 있습니다. --url--parent 인수를 함께 사용하면 다른 이미지 유형과 오류가 발생합니다.

      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 배포를 업그레이드하려면 다음이 필요합니다.

5.1.4. 이미지 빌더 명령줄 인터페이스를 사용하여 에지 이미지용 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>

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

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

    $ <UUID>-commit.tar: size MB

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

5.2. 비 네트워크 기반 배포 워크플로

"RHEL for Edge Container" 및 "RHEL for Edge Installer" 이미지를 사용하여 OSTree 기반 시스템을 설치하는 부팅 ISO 이미지를 빌드하려면 나중에 연결이 끊긴 환경에서 장치에 배포할 수 있는 단계를 따르십시오.

5.2.1. 이미지 빌더 CLI를 사용하여 에지 컨테이너용 RHEL 생성

에지 컨테이너 이미지에 대한 RHEL에 대한 청사진을 생성하려면 다음 단계를 수행합니다.

절차

  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. 이미지 빌더 서버로 푸시(import)합니다.

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

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

    # composer-cli blueprints depsolve blueprint-name

5.2.2. 이미지 빌더 CLI를 사용하여 에지 설치 관리자용 RHEL 생성

Edge Installer(.iso) 이미지를 위한 RHEL 을 빌드하고 설치 시 시스템에서 하나 이상의 사용자를 자동으로 생성하도록 사용자 계정을 지정할 수 있습니다. 에지 이미지 오디션을 위한 RHEL의 관리자 계정 생성을 참조하십시오. 설치 시 시스템에 사용자를 생성합니다.

주의

customizations.user 사용자 지정으로 사용자를 생성하면 /usr/lib/passwd 디렉토리 및 암호 아래에 /usr/etc/shadow 디렉터리에 사용자를 생성합니다. OSTree 업데이트를 사용하여 실행 중인 시스템에서 추가 버전의 이미지의 암호를 변경할 수 없습니다. 생성된 시스템에 액세스하기 위해서만 사용자가 생성한 사용자를 사용해야 합니다. 시스템에 액세스한 후 useradd 명령을 사용하여 사용자를 생성해야 합니다.

에지 설치 프로그램 이미지용 RHEL에 대한 청사진을 생성하려면 다음 단계를 수행합니다.

절차

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

    name = "blueprint-installer"
    description = "blueprint-for-installer-image"
    version = "0.0.1"
    
    [[customizations.user]]
    name = "user"
    description = "account"
    password = "user-password"
    key = "user-ssh-key "
    home = "path"
    groups = ["user-groups"]

    다음과 같습니다.

    • Blueprint-name 은 이름이며,akak-text-description은ak값에 대한 설명입니다.
    • 0.0.1 은 Semantic Versioning scheme에 따른 버전 번호입니다.
  2. 이미지 빌더 서버로 푸시(import)합니다.

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

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

    # composer-cli blueprints depsolve blueprint-name

5.2.3. 이미지 빌더 CLI를 사용하여 에지 컨테이너 이미지용 RHEL 생성

이미지 빌더 명령줄 인터페이스를 사용하여 엣지 컨테이너 이미지 RHEL을 생성하려면 다음 사전 요구 사항을 충족하고 절차를 따르십시오.

사전 요구 사항

  • 에지 컨테이너 이미지용 RHEL에 대한 청사진을 생성했습니다.

절차

  1. Edge 컨테이너 이미지에 대한 RHEL을 생성합니다.

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

    다음과 같습니다.

    • --ref 는 ostree 리포지토리를 빌드하는 데 사용되는 것과 동일한 값입니다.
    • -- URL은 이미지에 포함할 커밋의 OSTree 리포지토리의 URL입니다. 예: http://10.0.2.2:8080/repository/. Edge 이미지용 RHEL을 설치할 웹 서버 설정을 참조하십시오.
    • Blueprint-name 은 Edge Blueprint 이름에 대한 RHEL입니다.
    • image-type네트워크 기반이 아닌 배포의 edge-container 입니다.

      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>

    이미지가 준비되면 비 네트워크 배포에 사용할 수 있습니다. 비 네트워크 기반 배포의 경우 에지 컨테이너 이미지의 RHEL 생성을 참조하십시오.

5.2.4. 네트워크 이외의 배포의 명령줄 인터페이스를 사용하여 엣지 설치 프로그램 이미지용 RHEL 생성

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

사전 요구 사항

  • 에지 설치 프로그램 이미지용 RHEL에 대한 청사진을 생성했습니다.
  • Edge Edge Container 이미지를 위한 RHEL을 생성하고 웹 서버를 사용하여 배포했습니다.

절차

  1. 에지 설치 프로그램 이미지용 RHEL 생성을 시작합니다.

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

    다음과 같습니다.

    • ref 는 고객이 ostree 리포지토리를 빌드하는 데 사용한 값과 동일합니다.
    • URL-OSTree-repository 는 이미지에 포함할 커밋의 OSTree 리포지토리의 URL입니다. 예: http://10.0.2.2:8080/repository/. 비 네트워크 기반 배포의 경우 엣지 컨테이너 이미지 생성 을 참조하십시오.
    • Blueprint-name 은 에지 설치 프로그램 청사진 이름에 대한 RHEL입니다.
    • image-typeedge-installer 입니다.

      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>

    이미지가 준비되면 비 네트워크 배포에 사용할 수 있습니다. 네트워크 기반 배포가 아닌 경우 Edge 이미지의 RHEL 설치를 참조하십시오.

5.2.5. 이미지 빌더 CLI를 사용하여 에지 설치 관리자 이미지 다운로드

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

사전 요구 사항

  • 에지 설치 프로그램 이미지용 RHEL을 생성했습니다.

절차

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

    # composer-cli compose status

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

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

    # composer-cli compose image <UUID>

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

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

    $ <UUID>-boot.iso: size MB

결과 이미지는 부팅 가능한 ISO 이미지입니다.

5.3. 지원되는 이미지 사용자 정의

서비스를 활성화하거나 커널 명령줄 매개변수를 사용자 지정하여 추가 RPM 패키지를 추가하여 이미지를 사용자 지정할 수 있습니다. 청사진 내에서 여러 이미지 사용자 정의를 사용할 수 있습니다. 이러한 옵션을 사용하려면 사용자 지정을 구성하고 이미지 빌더로 가져오기(push)해야 합니다.

참고

웹 콘솔에서 이미지 빌더를 사용할 때는 이러한 사용자 정의가 지원되지 않습니다.

패키지 그룹 선택
[[packages]]
name = "package_group_name"

"package_group_name"을 그룹 이름으로 바꿉니다. 예를 들면 "@server with gui"입니다.

이미지 호스트 이름 설정
[customizations]
hostname = "baseimage"
결과 시스템 이미지에 대한 사용자 사양
[[customizations.user]]th
name = "USER-NAME"
description = "USER-DESCRIPTION"
password = "PASSWORD-HASH"
key = "PUBLIC-SSH-KEY"
home = "/home/USER-NAME/"
shell = "/usr/bin/bash"
groups = ["users", "wheel"]
uid = NUMBER
gid = NUMBER

GID는 선택 사항이며 이미지에 이미 존재해야 합니다. 선택적으로 패키지는 이를 생성하거나 청사진은 [[customizations.group] 항목을 사용하여 GID를 생성합니다.

중요

암호 해시 를 생성하려면 시스템에 python3 을 설치해야 합니다.

# yum install python3

PASSWORD-HASH 를 실제 암호 해시 로 바꿉니다. 암호 해시 를 생성하려면 다음과 같은 명령을 사용합니다.

$ python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'

PUBLIC-SSH-KEY 를 실제 공개 키로 교체합니다.

다른 자리 표시자를 적절한 값으로 바꿉니다.

이름 을 입력해야 합니다. 필요하지 않은 행을 생략할 수 있습니다.

포함할 모든 사용자에 대해 이 블록을 반복합니다.

결과 시스템 이미지의 그룹 사양
[[customizations.group]]
name = "GROUP-NAME"
gid = NUMBER

포함할 모든 그룹에 대해 이 블록을 반복합니다.

기존 사용자 SSH 키 설정
[[customizations.sshkey]]
user = "root"
key = "PUBLIC-SSH-KEY"
참고

"기존 사용자 SSH 키 설정" 사용자 지정은 기존 사용자에게만 적용됩니다. 사용자를 생성하고 SSH 키를 설정하려면 결과 시스템 이미지 사용자 지정에 대한 User 사양을 참조하십시오.

기본값에 커널 부팅 매개변수 옵션 추가
[customizations.kernel]
append = "KERNEL-OPTION"
기본적으로 이미지 빌더는 기본 커널을 이미지에 빌드합니다. 그러나 NetNamespace에서 다음과 같은 구성으로 커널을 사용자 지정할 수 있습니다.
[customizations.kernel]
name = "KERNEL-rt"
이미지에서 사용할 커널 이름 정의
[customizations.kernel.name]
name = "KERNEL-NAME"
결과 시스템 이미지에 대해 시간대 및 NTP( Network Time Protocol ) 서버 설정
[customizations.timezone]
timezone = "TIMEZONE"
ntpservers = "NTP_SERVER"

시간대를 설정하지 않으면 시스템은 Universal Time, Coordinated (UTC) 를 기본값으로 사용합니다. NTP 서버 설정은 선택 사항입니다.

결과 시스템 이미지의 로케일 설정 설정
[customizations.locale]
languages = ["LANGUAGE"]
keyboard = "KEYBOARD"

언어 및 키보드 옵션을 모두 설정하는 것은 필수입니다. 다른 많은 언어를 추가할 수 있습니다. 추가하는 첫 번째 언어는 기본 언어가고 다른 언어는 보조가 됩니다.

결과 시스템 이미지의 방화벽 설정
[customizations.firewall]
port = ["PORTS"]

목록을 활성화하려면 숫자 포트 또는 /etc/services 파일의 이름을 사용할 수 있습니다.

방화벽 서비스 사용자 지정

사용 가능한 방화벽 서비스를 검토합니다.

$ firewall-cmd --get-services

NetNamespace의 section customizations.firewall.service 에서 사용자 지정할 방화벽 서비스를 지정합니다.

[customizations.firewall.services]
enabled = ["SERVICES"]
disabled = ["SERVICES"]

firewall.services 에 나열된 서비스는 /etc/services 파일에서 사용할 수 있는 서비스 이름과 다릅니다.

참고

방화벽 서비스를 사용자 지정하지 않으려면 NetNamespace에서 [customizations.firewall][customizations.firewall.services] 섹션을 생략합니다.

부팅 시 활성화할 서비스 설정
[customizations.services]
enabled = ["SERVICES"]
disabled = ["SERVICES"]

부팅 시 활성화할 서비스를 제어할 수 있습니다. 일부 이미지 유형에는 이미지가 올바르게 작동하는지 확인하기 위해 이미 서비스가 활성화되거나 비활성화되어 있으며 이 설정을 재정의할 수 없습니다. knative의 [customizations.services] 사용자 지정은 이러한 서비스를 대체하지 않고 이미지 템플릿에 이미 있는 서비스 목록에 추가합니다.

참고

빌드가 시작될 때마다 호스트 시스템의 리포지토리를 복제합니다. 많은 기록으로 리포지토리를 참조하는 경우 복제에 시간이 걸릴 수 있으며 상당한 양의 디스크 공간을 사용합니다. 또한 복제본은 일시적인 것이며 빌드는 RPM 패키지를 생성한 후 제거합니다.

사용자 정의 파일 시스템 구성 지정

청사진에 사용자 지정 파일 시스템 구성을 지정할 수 있으므로 기본 레이아웃 구성 대신 특정 디스크 레이아웃으로 이미지를 생성할 수 있습니다. implicationss에서 기본이 아닌 레이아웃 구성을 사용하면 다음과 같은 이점을 얻을 수 있습니다.

  • 보안 벤치마크 컴플라이언스
  • 디스크 부족 오류 보호
  • 성능 향상
  • 기존 설정과 일관성

    다음과 같이 파일 시스템 구성을 사용자 정의하려면 다음을 수행합니다.

    [[customizations.filesystem]]
    mountpoint = "MOUNTPOINT"
    size = MINIMUM-PARTITION-SIZE

    청사진은 다음 마운트 지점 과 해당 하위 디렉터리를 지원합니다.

    • / - 루트 마운트 지점
    • /var
    • /home
    • /opt
    • /srv
    • /usr
    • /app
    • /data
    • /boot - RHEL 8.7 및 RHEL 9.1에서 지원됩니다.

      참고

      마운트 지점 사용자 지정은 CLI를 사용하여 RHEL 8.5 및 RHEL 9.0 배포에서만 지원됩니다. 이전 배포에서는 root 파티션만 마운트 지점으로 지정하고 크기 인수를 이미지 크기의 별칭으로 지정할 수 있습니다.

      사용자 지정 이미지에 파티션이 두 개 이상 있는 경우 LVM에 사용자 지정된 파일 시스템 파티션으로 이미지를 생성하고 런타임 시 해당 파티션의 크기를 조정할 수 있습니다. 이를 위해 사용자 지정 파일 시스템 구성을 지정하여 원하는 디스크 레이아웃으로 이미지를 생성할 수 있습니다. 파일 시스템 사용자 지정 없이 일반 이미지를 사용하는 경우 기본 파일 시스템 레이아웃은 변경되지 않고 cloud-init 는 루트 파티션의 크기를 조정합니다.

      참고

      8.6 이후 osbuild-composer-46.1-1.el8 RPM 이상 버전의 경우 물리 파티션을 더 이상 사용할 수 없으며 파일 시스템 사용자 지정에서 논리 볼륨을 생성합니다.

      청사진은 파일 시스템 사용자 지정을 LVM 파티션으로 자동으로 변환합니다.

      MINIMUM-ECDHEITION-SIZE 값은 기본 크기 형식이 없습니다. 청사진 사용자 지정은 kB에서 TB로, TiB로 다음과 같은 값과 단위를 지원합니다. 예를 들어 마운트 지점 크기를 바이트 단위로 정의할 수 있습니다.

      [[customizations.filesystem]]
      mountpoint = "/var"
      size = 1073741824

      단위를 사용하여 마운트 지점 크기를 정의할 수도 있습니다.

      참고

      RHEL 8.6 및 RHEL 9.0 배포에 제공된 패키지 버전에 단위를 사용하여 마운트 지점 크기를 정의할 수 있습니다.

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

      [[customizations.filesystem]]
      mountpoint = "/opt"
      size = "20 GiB"
      
      or
      
      [[customizations.filesystem]]
      mountpoint = "/boot"
      size = "1 GiB"

5.4. 추가 리소스

6장. 에지 이미지용 RHEL을 프로비저닝하기 위해 간소화된 설치 프로그램 이미지 빌드

장치에 역추적 설치에 최적화된 에지 Simplified 설치 프로그램 이미지용 RHEL을 빌드하고 Edge 이미지용 RHEL에 이미지를 프로비저닝할 수 있습니다.

6.1. 설치 프로그램 이미지 빌드 및 배포 단순화

새로운 이미지 유형 edge-simplified-installer 를 사용하여 에지 Simplified 설치 프로그램 이미지용 RHEL을 빌드합니다.

에지 간소화 설치 프로그램 이미지용 RHEL을 빌드하려면 기존 OSTree 커밋을 제공합니다. 결과 간소화된 이미지에는 OSTree 커밋이 배포된 원시 이미지가 포함되어 있습니다. 간소화된 설치 프로그램 ISO 이미지를 부팅한 후 하드 디스크 또는 가상 머신의 부팅 이미지로 사용할 수 있는 RHEL for Edge 시스템을 프로비저닝합니다.

Edge Simplified 설치 프로그램 이미지는 장치에 자동 설치할 수 있도록 최적화되어 네트워크 기반 배포 및 비 네트워크 기반 배포를 모두 지원합니다. 그러나 네트워크 기반 배포의 경우 UEFI HTTP 부팅만 지원합니다.

에지 이미지용 간소화된 RHEL을 작성 및 배포하려면 다음과 같은 고급 단계가 포함됩니다.

  1. RHEL 시스템 설치 및 등록
  2. 이미지 빌더 설치
  3. 이미지 빌더를 사용하여 에지 컨테이너 이미지용 RHEL에 대한 사용자 지정으로 설정 생성
  4. 이미지 빌더에서 엣지용 RHEL 가져오기
  5. OSTree 리포지토리로 커밋을 배포할 준비가 된 웹 서버를 사용하여 OCI 컨테이너에 포함된 RHEL을 생성
  6. Edge-simplified-installer를 위한tracing 생성
  7. Edge 이미지용으로 간소화된 RHEL 빌드
  8. Edge 간소화된 이미지를 위한 RHEL 다운로드
  9. virt-install을 사용하여 원시 이미지 설치

다음 다이어그램은 Edge Simplified 빌드 및 프로비저닝 워크플로용 RHEL을 나타냅니다.

그림 6.1. 네트워크베이스 환경에서 Edge용 RHEL 빌드 및 프로비저닝

에지 간소화 워크플로우용 RHEL

6.2. 이미지 빌더 CLI를 사용하여 간소화된 이미지 생성

에지 이미지용 간소화된 RHEL에 대한 청사진을 생성하려면 다음 단계를 수행합니다.

절차

  1. 다음 콘텐츠를 사용하여 Tom의 Obvious, Minimal Language(TOML) 형식으로 일반 텍스트 파일을 생성합니다.

    name = "simplified-installer-blueprint"
    description = "blueprint for the simplified installer image"
    version = "0.0.1"
    packages = []
    modules = []
    groups = []
    distro = ""
    
    [customizations]
    installation_device = "/dev/vda"
    
    [customizations.fdo]
    manufacturing_server_url = "http://10.0.0.2:8080"
    diun_pub_key_insecure = "true"

    다음과 같습니다.

    • name 은 name이고 description 은 distribution에 대한 설명입니다.
    • 0.0.1 은 Semantic Versioning scheme에 따른 버전 번호입니다.
    • 모듈은 패키지 이름과 이미지에 설치할 버전 glob를 설명합니다(예: 패키지 이름 = "tmux" 및 일치하는 버전 glob는 version = "2.9a"입니다. 현재 패키지와 모듈에는 차이점이 없습니다.
    • 그룹은 이미지에 설치할 패키지 그룹입니다(예: anaconda-tools 그룹 패키지). 모듈과 그룹을 모르는 경우 비워 두십시오.
    • 설치 장치는 장치에 자동 설치를 활성화하기 위한 사용자 지정입니다.
    • manufacturing_server_url 은 초기 장치 인증 정보 교환을 수행하는 URL입니다.
  2. 이미지 빌더 서버로 푸시(import)합니다.

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

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

    # composer-cli blueprints depsolve blueprint-name

6.3. 이미지 빌더 CLI를 사용하여 Edge Simplified Installer 이미지 생성

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

사전 요구 사항

절차

  1. 부팅 가능한 ISO 이미지를 생성합니다.

    # composer-cli compose start-ostree \
    blueprint-name \
    edge-simplified-installer \
    --ref rhel/8/x86_64/edge \
    --url URL-OSTree-repository \

    다음과 같습니다.

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

    # composer-cli compose status

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

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

    이미지 생성 프로세스를 완료하는 데 최대 10분이 걸릴 수 있습니다.

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

    # composer-cli compose cancel <UUID>

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

    # composer-cli compose delete <UUID>

6.4. 이미지 빌더 명령줄 인터페이스를 사용하여 Edge 이미지에 대한 간소화된 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>

    이미지 빌더는 명령을 실행하는 현재 디렉터리 경로에 있는 .iso 파일로 이미지를 다운로드합니다.

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

    $ <UUID>-simplified-installer.iso: size MB

그 결과 Edge Simplified Installer ISO 이미지에 대한 RHEL을 다운로드했습니다. 부팅 ISO로 직접 사용하여 Edge 시스템에 RHEL을 설치할 수 있습니다.

6.5. UEFI HTTP Boot 서버 설정

UEFI HTTP Boot 서버에 연결하여 네트워크를 통해 에지 가상 머신용 RHEL을 프로비저닝할 수 있도록 UEFI HTTP Boot 서버를 설정하려면 다음 단계를 따르십시오.

사전 요구 사항

  • ISO 단순화된 설치 프로그램 이미지를 생성했습니다.
  • ISO 콘텐츠를 제공하는 http 서버입니다.

절차

  1. 선택한 디렉토리에 ISO 이미지를 마운트합니다.

    # mkdir /mnt/rhel8-install/
    # mount -o loop,ro -t iso9660 /path_directory/installer.iso /mnt/rhel8-install/

    /path_directory/installer.iso 를 에지 부팅 가능 ISO 이미지의 RHEL 경로로 교체합니다.

  2. 마운트된 이미지의 파일을 HTTP 서버 루트에 복사합니다. 이 명령은 이미지 콘텐츠를 사용하여 /var/www/html/rhel8-install/ 디렉터리를 생성합니다.

    # cp -R /mnt/rhel8-install/* /var/www/html/
    # chmod -R +r /var/www/html/httpboot/*
    참고

    일부 복사 방법은 유효한 설치 소스에 필요한 .treeinfo 파일을 건너뛸 수 있습니다. 이 절차에 표시된 대로 전체 디렉토리에 대해 cp 명령을 실행하면 .treeinfo가 올바르게 복사됩니다.

  3. 다음을 교체하여 /var/www/html/EFI/BOOT/grub.cfg 파일을 업데이트합니다.

    1. coreos.inst.install_dev=/dev/sda with coreos.inst.install_dev=/dev/vda
    2. linux /images/pxeboot/vmlinuz with linuxefi /images/pxeboot/vmlinuz
    3. initrd /images/pxeboot/initrd.img with initrdefi /images/pxeboot/initrd.img
    4. coreos.inst.image_file=/run/media/iso/disk.img.xz with coreos.inst.image_url=http://{IP-ADDRESS}/disk.img.xz

      IP-ADDRESS 는 이 시스템의 IP 주소로 http 부팅 서버로 사용됩니다.

  4. httpd 서비스를 시작합니다.

    # systemctl start httpd.service

    결과적으로 UEFI HTTP 부팅을 설정한 후 UEFI HTTP 부팅 을 사용하여 에지 장치에 대해 RHEL을 설치할 수 있습니다.

6.6. 가상 머신에 단순화된 ISO 이미지 배포

다음 설치 소스를 사용하여 Edge Simplified 이미지용 RHEL을 생성하여 생성한 Edge ISO 이미지에 대한 RHEL을 배포합니다.

  • UEFI HTTP Boot
  • virt-install

이 예에서는 네트워크 기반 설치의 ISO 이미지에서 virt-install 설치 소스를 생성하는 방법을 보여줍니다.

사전 요구 사항

  • ISO 이미지를 생성했습니다.
  • UEFI HTTP 부팅을 지원하는 네트워크 구성을 설정했습니다.

절차

  1. UEFI HTTP 부팅을 지원하기 위해 네트워크 구성을 설정합니다. libvirt를 사용하여 UEFI HTTP 부팅 설정을 참조하십시오.
  2. virt-install 명령을 사용하여 UEFI HTTP Boot에서 Edge Virtual Machine용 RHEL을 생성합니다.

    # virt-install \
        --name edge-install-image \
        --disk path=”  “, ,format=qcow2
        --ram 3072 \
        --memory 4096 \
        --vcpus 2 \
        --network network=integration,mac=mac_address \
        --os-type linux
        --os-variant rhel8 \
        --cdrom "/var/lib/libvirt/images/”ISO_FILENAME"
        --boot uefi,loader_ro=yes,loader_type=pflash,nvram_template=/usr/share/edk2/ovmf/OVMF_VARS.fd,loader_secure=no
        --virt-type kvm \
        --graphics none \
         --wait=-1
         --noreboot

명령을 실행하면 가상 머신 설치가 시작됩니다.

검증

  • 생성된 가상 머신에 로그인합니다.

6.7. USB 플래쉬 드라이브에서 Simplified ISO 이미지 배포

USB 설치를 사용하여 Edge Simplified 이미지용 RHEL을 생성하여 생성한 에지 ISO 이미지용 RHEL을 배포합니다.

이 예에서는 ISO 이미지에서 USB 설치 소스를 생성하는 방법을 보여줍니다.

사전 요구 사항

  • ISO 이미지인 간소화된 설치 프로그램 이미지를 생성했습니다.
  • 8GB USB 플래쉬 드라이브가 있습니다.

절차

  1. ISO 이미지 파일을 USB 플래쉬 드라이브에 복사합니다.
  2. USB 플래시 드라이브를 부팅하려는 컴퓨터의 포트에 연결합니다.
  3. USB 플래쉬 드라이브에서 ISO 이미지를 부팅합니다. 부팅 메뉴는 다음 옵션을 보여줍니다.

    Install Red Hat Enterprise Linux 8
    Test this media & install Red Hat Enterprise Linux 8
  4. Choose Install Red Hat Enterprise Linux 8. 그러면 시스템 설치가 시작됩니다.

추가 리소스

7장. FDO를 사용하여 에지 장치용 RHEL 자동 프로비저닝 및 온보딩

Edge Simplified 설치 프로그램 이미지용 RHEL을 빌드하고 Edge 이미지용 RHEL에 프로비저닝할 수 있습니다. FIDO 장치 온보딩(FDO) 프로세스는 자동으로 에지 장치를 프로비저닝하고 온보딩하고 네트워크에 연결된 다른 장치 및 시스템과 데이터를 교환합니다.

중요

Red Hat은 FDO 프로세스를 기술 프리뷰 기능으로 제공하며 보안 네트워크에서 실행해야 합니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다. 기술 프리뷰 기능의 지원 범위에 대한 정보는 Red Hat Customer Portal의 기술 프리뷰 기능 지원 범위를 참조하십시오.

7.1. FlexVolumeDO 장치 온보딩(FDO) 프로세스

장치 온보딩은 다음을 수행하는 프로세스입니다.

  • 물리적 장치를 프로비저닝 및 온보드합니다.
  • 이 장치에 대한 자격 증명을 자동으로 구성합니다.
  • 이 장치가 네트워크에서 안전하게 연결 및 상호 작용할 수 있도록 합니다.

FDO(Device onboarding)를 사용하면 IOT 아키텍처에 새 장치를 추가하여 보안 장치 온보딩을 수행할 수 있습니다. 여기에는 신뢰할 수 있고 다른 실행 중인 시스템과 통합되어야 하고 사용할 준비가 된 새 시스템을 배포해야 하는 지정된 장치 구성이 포함됩니다. FDO 인증은 장치를 안전하게 온보딩하기 위해 새 장치를 설치하여 트리거되는 자동 온보딩 프로세스입니다. FDO 프로토콜은 대규모 장치를 안전하게 온보딩하는 데 필요한 자동화와 신뢰와 함께 소유권 체인을 해결합니다. 실제 사용을 위해 제조 단계 및 늦은 장치 바인딩에서 장치 초기화를 수행합니다. 즉, 장치를 관리 시스템에 실제로 바인딩하는 것은 장치에서 수동으로 구성하지 않고도 장치의 첫 번째 부팅 시 수행됩니다. FDO 프로토콜을 사용하면 자동화된 보안 장치 온보딩, 즉 에지 위치에 특수자가 필요하지 않은 제로 토크 설치 및 온보딩을 지원합니다. 장치가 온보딩된 후 장치에 연결하여 패치, 업데이트 및 롤백을 적용할 수 있습니다.

FDO를 사용하면 다음과 같은 이점을 누릴 수 있습니다.

  • FDO는 장치를 관리 플랫폼에 등록하는 안전하고 간단한 방법입니다. Kickstart 구성을 이미지에 포함하는 대신 FDO는 중요한 데이터를 자격 증명, 키 또는 인증서를 ISO 이미지에 직접 포함하는 것과 같은 사용자 지정을 적용합니다.
  • FDO는 지연 바인딩을 장치에 전달하여 중요한 데이터를 보안 FDO 채널을 통해 공유할 수 있도록 합니다.
  • FDO는 구성 및 기타 시크릿을 시스템에 등록하고 전달하기 전에 시스템 ID와 소유권을 식별합니다. 이를 통해 비기술적 사용자가 시스템의 전원을 켜도록 할 수 있습니다.

Edge Simplified Installer 이미지용 RHEL을 빌드하고 자동으로 켜지려면 기존 OSTree 커밋을 제공합니다. 결과 간소화된 이미지에는 OSTree 커밋이 배포된 원시 이미지가 포함되어 있습니다. 간소화된 설치 프로그램 ISO 이미지를 부팅한 후 하드 디스크 또는 가상 머신의 부팅 이미지로 사용할 수 있는 RHEL for Edge 시스템을 프로비저닝합니다.

Edge Simplified 설치 프로그램 이미지는 장치에 자동 설치할 수 있도록 최적화되어 네트워크 기반 배포 및 비 네트워크 기반 배포를 모두 지원합니다. 그러나 네트워크 기반 배포의 경우 UEFI HTTP 부팅만 지원합니다.

FDO 프로토콜은 다음 서버를 기반으로 합니다.

  • 제조 서버

    이 서버는 제조업체 서버 위치에 있습니다. 제조 서버:

    1. 장치에 서명합니다.
    2. 나중에 장치의 소유권을 설정하는 데 사용되는 바우처를 만듭니다.
    3. 장치를 특정 관리 플랫폼에 바인딩합니다.
  • rendezvous 서버

    이 서버는 소유자 서버 위치 또는 장치 관리 시스템이 (예: 클라우드) 위치하는 플랫폼에 있습니다. Rendezvous 서버:

    1. 첫 번째 장치 부팅 중에 제조 서버가 생성한 바우처를 가져옵니다.
    2. 장치 UUID와 대상 플랫폼과 일치하고 이 장치가 사용해야 하는 소유자 서버 끝점에 대한 정보를 장치에 제공합니다.
  • 소유자 관리 서버

    이 서버는 소유자 서버 위치 또는 장치가 배포되는 플랫폼에 있습니다. 소유자 관리 서버:

    1. 장치 인증 후 장치와 소유자 서버 사이에 보안 채널을 생성합니다.
    2. 보안 채널을 사용하여 온보딩 자동화에 필요한 파일 및 스크립트와 같은 필요한 정보를 장치로 보냅니다.
  • 장치 클라이언트

    이는 장치에 설치된 서버입니다. 장치 클라이언트

    1. 온보딩 자동화가 실행될 여러 서버에 대한 쿼리를 시작합니다.
    2. TCP/IP 프로토콜을 사용하여 서버와 통신합니다.

다음 다이어그램은 FIDO 장치 온보딩 워크플로를 나타냅니다.

그림 7.1. 비 네트워크 환경에서 Edge용 RHEL 배포

FDO 장치 온보딩

Manufacturer 서버에서 장치는 FDO 자격 증명, 운영 체제에 설치할 인증서 및 키 세트, Rendezvous 서버 끝점(URL)을 가져옵니다. 또한 소유자 할당을 변경해야 하는 경우 별도로 유지되는 Ownership Voucher를 가져옵니다.

  1. 장치 클라이언트가 장치 자격 증명을 읽습니다.
  2. 장치 클라이언트가 네트워크에 연결
  3. 초기 단계에서 소유자 관리 시스템은 Manufacturer Rendezvous 서버에 소유자 관리 시스템의 위치에 대해 알려줍니다.
  4. 네트워크에 연결한 후 장치 클라이언트가 Rendezvous 서버에 연결합니다.
  5. Rendezvous 서버는 소유자 끝점 URL을 장치 클라이언트로 전송하고 장치를 등록합니다. 이 작업은 장치를 연결하고 부팅합니다.
  6. 장치 클라이언트는 Rendezvous 서버에서 공유하는 소유자 관리 시스템에 연결하여 장치 키로 문에 서명하여 올바른 장치임을 증명합니다.
  7. 소유자 관리 시스템은 소유자 바우처의 마지막 키를 사용하여 문에 서명하여 증명합니다.
  8. 소유자 관리 시스템은 장치 클라이언트가 SSH 키(예: SSH 키)를 저장하는 장치에 대한 구성을 제공합니다.
  9. 장치 클라이언트가 소유권 바우처를 수신 및 확인
  10. 그런 다음 장치 클라이언트가 장치 자격 증명을 검색합니다.
  11. 그 후 소유자 관리 시스템은 장치 클라이언트를 온보딩으로 보고합니다.

    전체 FDO 프로세스는 완료되었으며 이 장치에서 더 이상 사용되지 않습니다.

7.2. 에지 장치용 RHEL 자동 프로비저닝 및 온보딩

에지 장치에 대한 RHEL의 자동 프로비저닝 및 온보딩에는 다음과 같은 고급 단계가 포함됩니다.

  1. RHEL 시스템 설치 및 등록
  2. 이미지 빌더 설치
  3. 이미지 빌더를 사용하여 에지 컨테이너 이미지용 RHEL에 대한 사용자 지정으로 설정 생성
  4. 이미지 빌더에서 엣지용 RHEL 가져오기
  5. OSTree 리포지토리로 커밋을 배포할 준비가 된 웹 서버를 사용하여 OCI 컨테이너에 포함된 RHEL을 생성
  6. 스토리지 장치 경로 및 FDO 사용자 지정을 위한 사용자 지정을 사용하여 엣지-simplified-installer 를 생성

    name = "fdo"
    description = "FDO blueprint"
    version = "0.0.1"
    packages = []
    modules = []
    groups = []
    distro = ""
    
    [customizations]
    installation_device = "/dev/vda"
    
    [customizations.fdo]
    manufacturing_server_url = "http://10.0.0.2:8080"
    diun_pub_key_insecure = "true"
  7. 에지 이미지용 간소화된 설치 프로그램 RHEL 빌드
  8. Edge용 RHEL 단순화 설치 프로그램 이미지 다운로드
  9. 장치에 단순화된 설치 프로그램 ISO 이미지를 설치합니다. FIDO FDO 클라이언트는 Simplified Installer ISO에서 실행되며 UEFI 디렉터리 구조는 이미지를 부팅 가능하게 만듭니다.
  10. 네트워크 구성을 사용하면 장치는 제조 서버에 연결하여 초기 장치 자격 증명 교환을 수행할 수 있습니다.
  11. 시스템이 끝점에 도달하면 장치에 대한 장치 자격 증명이 생성됩니다.
  12. 온보드 서버는 장치 자격 증명을 사용하여 온보딩 서버에 대한 인증을 수행합니다. 온보딩 서버는 장치/시스템에 구성을 전달합니다. 이 서버는 시스템에 연결한 후 온보딩 서버에 연결하여 구성을 수신합니다.
  13. 온보딩 서버는 장치에 SSH 키를 제공하고 시스템을 설치합니다.
  14. 그런 다음 시스템을 재부팅하고 TPM에 저장된 강력한 키를 사용하여 암호화합니다.
  15. 생성된 청사진에서 인증 정보를 사용하여 시스템에 로그인하고 Simplified Installer ISO 이미지에 생성된 구성을 확인할 수 있습니다.

추가 리소스

7.3. 키 및 인증서 생성

FDO(Device onboarding) 인프라를 실행하려면 키와 인증서를 생성해야 합니다. FDO는 이러한 키와 인증서를 생성하여 제조 서버를 구성합니다. FDO는 서비스를 설치할 때 인증서 및 .yaml 구성 파일을 자동으로 생성하고 다시 생성하는 것은 선택 사항입니다. 서비스를 설치하고 시작한 후에는 기본 설정으로 실행됩니다.

중요

Red Hat은 fdo-admin-tool generate-key-and-cert 툴을 기술 프리뷰 기능으로 제공하며 보안 네트워크에서 실행해야 합니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다. 기술 프리뷰 기능의 지원 범위에 대한 정보는 Red Hat Customer Portal의 기술 프리뷰 기능 지원 범위를 참조하십시오.

사전 요구 사항

  • fdo-admin-cli RPM 패키지를 설치하셨습니다.

절차

  1. 키 및 인증서에 사용할 디렉터리를 생성합니다.

    $ mkdir /etc/fdo/keys
  2. 생성한 디렉터리에 키와 인증서를 생성합니다.

    $ for i in "diun" "manufacturer" "device_ca" "owner"; do fdo-admin-tool generate-key-and-cert $i; done
    $ ls keys
    device_ca_cert.pem device_ca_key.der diun_cert.pem diun_key.der manufacturer_cert.pem manufacturer_key.der owner_cert.pem owner_key.der
    참고

    소스 코드를 사용하여 컴파일한 경우 올바른 경로는 빌드 옵션에 따라 ./target/debug/fdo-admin-tool 또는 ./target/debug/fdo-admin-tool 입니다.

  3. 생성된 키와 인증서를 확인합니다.

    $ tree keys

    다음 출력을 볼 수 있습니다.

    – device_ca_cert.pem
    – device_ca_key.der
    – diun_cert.pem
    – diun_key.dre
    – manufacturer_cert.pem
    – manufacturer_key.der
    – owner_cert.pem
    – owner_key.pem

추가 리소스

  • fdo-admin-tool generate-key-and-cert -help

7.4. 제조 서버 패키지 설치

manufacturing server RPM 패키지는 장치 온보드에 안전하게 인증 정보를 제공합니다. 장치 설치 중에 제조 서버는 Rendezvous 서버를 요청하여 서버에 대한 장치 자격 증명 인증을 제공하고 장치 자격 증명을 설치된 시스템에 설치합니다.

중요

Red Hat은 F do-manufacturing-server 툴을 기술 프리뷰 기능으로 제공하며 보안 네트워크에서 실행해야 합니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다. 기술 프리뷰 기능의 지원 범위에 대한 정보는 Red Hat Customer Portal의 기술 프리뷰 기능 지원 범위를 참조하십시오.

manufacturing server RPM 패키지를 설치하려면 다음 단계를 완료합니다.

절차

  1. fdo-admin-cli 패키지를 설치합니다.

    # yum install -y fdo-admin-cli
  2. 제조 서버 RPM 패키지를 설치합니다.

    # yum install fdo-manufacturing-server --refresh
  3. 파일이 올바르게 설치되었는지 확인합니다.

    $ ls /usr/share/doc/fdo

    다음 출력을 볼 수 있습니다.

    Output:
    manufacturing server.yml
    Owner-onboarding-server.yml
    rendezvous-server.yml
  4. 선택 사항: 각 파일의 내용을 확인합니다. 예를 들면 다음과 같습니다.

    $ cat /usr/share/doc/fdo/manufacturing-server.yml
  5. manufacturing 서버를 구성합니다. 다음을 제공해야 합니다.

    • 제조 서버 URL
    • rendezvous 서버의 IP 주소 또는 DNS 이름
    • 생성된 키와 인증서의 경로입니다. 키 및 인증서 생성 섹션을 참조하십시오.
  6. RHEL for Edge 네트워크 단순화 이미지를 장치에 설치한 후 제조업체 서버가 Podman 컨테이너에서 실행되고 있는지 확인합니다. 제조 서버는 새 장치에서 장치 자격 증명 생성 및 활성화를 처리합니다.

    $ cat /usr/share/doc/fdo/manufacturing-server.yml

7.5. FDO 인증을 사용하여 에지 장치용 RHEL 자동 온보딩

Edge 장치용 RHEL을 자동으로 켜도록 장치를 준비하려면 다음 단계를 완료합니다.

사전 요구 사항

  • OStree 컨테이너를 빌드하고 제공합니다.
  • 장치가 조립 및 프로비저닝되었습니다. 이 예에서는 VM 시스템을 사용하지만 실제 장치에서 사용할 수 있습니다.
  • UEFI HTTP 부팅 서버를 실행하고 있습니다.
  • fdo-manufacturing-server RPM 패키지를 설치하셨습니다. 다음을 실행합니다.

    # yum install -y fdo-admin-cli

절차

  1. ISO 간소화 이미지를 사용하여 설치를 실행합니다. 예를 들어 CD-ROM 또는 USB 플래시 드라이브에서 설치할 수 있습니다.

    설치에서는 ISO Simplified 설치 프로그램 이미지를 실행합니다. 여기서 FDO 클라이언트가 실행되고 UEFI 디렉터리 구조는 이미지를 부팅하여 ISO에서 원시 이미지를 구울 수 있습니다.

  2. 터미널을 통해 초기 장치 인증 정보 교환을 수행하고 소유권 바우처를 생성하기 위해 장치가 제조 서비스에 도달했는지 확인합니다.

    $ ls directory-path/ownership_voucher/

    출력에 올바른 장치 자격 증명이 장치에 추가되었음을 나타내기 위해 ownership_voucher ID가 표시되어야 합니다.

    온보딩 서버는 장치 자격 증명을 사용하여 온보딩 서버에 대해 인증합니다. 그런 다음 구성을 장치에 전달합니다. 장치가 온보드 서버에서 구성을 수신한 후 SSH 키를 수신하고 장치에 운영 체제를 설치합니다. 마지막으로 시스템은 자동으로 재부팅되며 TPM에 저장된 강력한 키를 사용하여 암호화합니다.

    장치가 자동으로 재부팅되면 장치는 온보딩 서버에 연결하고 FDO에서 사용자 인증 정보를 자동으로 프로비저닝합니다.

검증

장치가 자동으로 재부팅되면 생성한 인증 정보를 사용하여 장치에 로그인할 수 있습니다.

  1. 청사진에 대해 생성한 사용자 이름과 암호를 제공하여 장치에 로그인합니다.
  2. 선택 사항: 원시 이미지에 생성된 구성을 확인합니다.

8장. 네트워크 기반 환경에서 Edge 이미지용 RHEL 배포

RHEL 설치 프로그램 그래픽 사용자 인터페이스 또는 Kickstart 파일을 사용하여 에지 이미지용 RHEL을 배포할 수 있습니다. Edge 이미지에 RHEL을 배포하는 전체 프로세스는 배포 환경이 네트워크 기반인지 또는 비 네트워크 기반인지에 따라 다릅니다.

참고

베어 메탈에 이미지를 배포하려면 Kickstart 파일을 사용합니다.

네트워크 기반 배포

네트워크 기반 환경에서 Edge 이미지에 RHEL을 배포하려면 다음 상위 수준 단계가 포함됩니다.

  1. 이미지 파일 콘텐츠를 추출합니다.
  2. 웹 서버 설정
  3. 이미지 설치

8.1. Edge 이미지 커밋용 RHEL 추출

커밋을 다운로드한 후 .tar 파일을 추출하고 ref 이름과 커밋 ID를 기록해 둡니다.

다운로드한 커밋 파일은 OSTree 리포지토리가 있는 .tar 파일로 구성됩니다. OSTree 리포지토리에 커밋과 compose.json 파일이 있습니다.

compose.json 파일에는 "Ref", 참조 ID 및 커밋 ID와 같은 정보가 포함된 커밋에 대한 정보 메타데이터가 있습니다. 커밋 ID에는 RPM 패키지가 있습니다.

패키지 콘텐츠를 추출하려면 다음 단계를 수행합니다.

사전 요구 사항

  • Kickstart 파일을 만들거나 기존 파일을 사용합니다.

절차

  1. 다운로드한 이미지 .tar 파일을 추출합니다.

    # tar xvf <UUID>-commit.tar
  2. .tar 파일을 추출한 디렉터리로 이동합니다.

    compose.json 파일과 OSTree 디렉터리가 있습니다. compose.json 파일에는 커밋 번호가 있으며 OSTree 디렉터리에는 RPM 패키지가 있습니다.

  3. compose.json 파일을 열고 커밋 ID 번호를 기록해 둡니다. 웹 서버를 설정할 때 이 숫자의 편리성이 필요합니다.

    jq JSON 프로세서가 설치된 경우 jq 툴을 사용하여 커밋 ID를 검색할 수도 있습니다.

    # jq '.["ostree-commit"]' < compose.json
  4. 커밋에 RPM 패키지를 나열합니다.

    # rpm-ostree db list rhel/8/x86_64/edge --repo=repo
  5. Kickstart 파일을 사용하여 RHEL 설치 프로그램을 실행합니다. 필요한 경우 기존 파일을 사용하거나 Kickstart 생성기 도구를 사용하여 하나를 만들 수 있습니다.

    Kickstart 파일에서 파일 시스템을 프로비저닝하는 방법, 사용자 생성 및 에지용 RHEL을 가져오고 배포하는 방법에 대한 세부 정보가 포함되어 있는지 확인합니다. RHEL 설치 프로그램은 설치 프로세스 중에 이 정보를 사용합니다.

    다음은 Kickstart 파일 예입니다.

    lang en_US.UTF-8
    keyboard us
    timezone Etc/UTC --isUtc
    text
    zerombr
    clearpart --all --initlabel
    autopart
    reboot
    user --name=core --group=wheel
    sshkey --username=core "ssh-rsa AAAA3Nza…​."
    rootpw --lock
    network --bootproto=dhcp
    
    ostreesetup --nogpg --osname=rhel --remote=edge --url=https://mirror.example.com/repo/ --ref=rhel/8/x86_64/edge

    OStree 기반 설치에서는 ostreesetup 명령을 사용하여 구성을 설정합니다. 다음 플래그를 사용하여 OSTree 커밋을 가져옵니다.

    • --nogpg - GPG(GNU Privacy Guard) 키 확인을 비활성화합니다.
    • --osname - 운영 체제 설치를 위한 관리 루트입니다.
    • --remote - 운영 체제 설치를 위한 관리 루트
    • --URL - 설치할 리포지토리의 URL입니다.
    • --ref - 설치에서 사용하는 저장소의 분기 이름입니다.
    • --URL=https://mirror.example.com/repo/ -를 통해 에지 커밋을 추출하여 nginx 를 통해 제공되는 호스트 시스템의 주소입니다. 주소를 사용하여 게스트 컴퓨터에서 호스트 시스템에 연결할 수 있습니다.

      예를 들어 /var/www/html 디렉토리에서 커밋 이미지를 추출하고 hostname이 www.example.com 인 컴퓨터에서 nginx 를 통해 커밋을 제공하는 경우 --url 매개 변수의 값은 http://www.example.com/repo 입니다.

      참고

      http 프로토콜을 사용하여 Apache HTTP 서버에서 https가 활성화되어 있지 않기 때문에 커밋을 제공할 서비스를 시작합니다.

8.2. 에지 이미지용 RHEL을 설치하기 위해 웹 서버 설정

RHEL for Edge 이미지 콘텐츠를 추출한 후 HTTP를 사용하여 RHEL 설치 프로그램에 이미지 커밋 세부 정보를 제공하도록 웹 서버를 설정합니다.

다음 예제에서는 컨테이너를 사용하여 웹 서버를 설정하는 단계를 제공합니다.

사전 요구 사항

절차

  1. 다음 지침을 사용하여 nginx 구성 파일을 생성합니다.

    events {
    
    }
    
    http {
        server{
            listen 8080;
            root /usr/share/nginx/html;
                    }
             }
    
    pid /run/nginx.pid;
    daemon off;
  2. 다음 명령을 사용하여 Dockerfile을 생성합니다.

    FROM registry.access.redhat.com/ubi8/ubi
    RUN yum -y install nginx && yum clean all
    COPY kickstart.ks /usr/share/nginx/html/
    COPY repo /usr/share/nginx/html/
    COPY nginx /etc/nginx.conf
    EXPOSE 8080
    CMD ["/usr/sbin/nginx", "-c", "/etc/nginx.conf"]
    ARG commit
    ADD ${commit} /usr/share/nginx/html/

    다음과 같습니다.

    • Kickstart.ks 는 RHEL for Edge 이미지의 Kickstart 파일의 이름입니다. Kickstart 파일에는 지시문 정보가 포함되어 있습니다. 나중에 이미지를 관리하는 데 도움이 되도록 Greenboot 검사의 검사 및 설정을 포함하는 것이 좋습니다. 이를 위해 다음 설정을 포함하도록 Kickstart 파일을 업데이트할 수 있습니다.

      lang en_US.UTF-8
      keyboard us
      timezone Etc/UTC --isUtc
      text
      zerombr
      clearpart --all --initlabel
      autopart
      reboot
      user --name=core --group=wheel
      sshkey --username=core "ssh-rsa AAAA3Nza…​."
      
      ostreesetup --nogpg --osname=rhel --remote=edge
      --url=https://mirror.example.com/repo/
      --ref=rhel/8/x86_64/edge
      
      %post
      cat << EOF > /etc/greenboot/check/required.d/check-dns.sh
      #!/bin/bash
      
      DNS_SERVER=$(grep nameserver /etc/resolv.conf | cut -f2 -d" ")
      COUNT=0
      
      # check DNS server is available
      ping -c1 $DNS_SERVER
      while [ $? != '0' ] && [ $COUNT -lt 10 ]; do
      
      							
      							
      							
      							COUNT++
      echo "Checking for DNS: Attempt $COUNT ."
      sleep 10
      ping -c 1 $DNS_SERVER
      done
      EOF
      %end

      모든 HTTP 서비스는 OSTree 리포지토리를 호스팅할 수 있으며 컨테이너를 사용하는 예제는 이 작업을 수행하는 방법에 대한 옵션일 뿐입니다. Dockerfile은 다음 작업을 수행합니다.

      1. 최신 UBI(Universal Base Image) 사용
      2. 웹 서버(nginx) 설치
      3. 서버에 Kickstart 파일 추가
      4. 서버에 Edge 이미지 커밋용 RHEL 추가
  3. Docker 컨테이너 빌드

    # podman build -t name-of-container-image --build-arg commit=uuid-commit.tar .
  4. 컨테이너 실행

    # podman run --rm -d -p port:8080 localhost/name-of-container-image

    결과적으로 서버는 commit.tar 리포지토리와 Kickstart 파일을 사용하여 RHEL Installer를 시작할 준비가 되었습니다.

8.3. RHEL Boot.iso 이미지 다운로드

Red Hat 고객 포털에서 Red Hat 부팅 ISO 이미지를 다운로드할 수 있습니다. Red Hat Boot ISO 이미지는 RHEL 설치 프로그램을 시작하는 데 사용됩니다. 설치 프로그램은 Edge 이미지용 RHEL 설치를 위해 제공하는 Kickstart 파일을 가져옵니다.

사전 요구 사항

  • 유효한 Red Hat 서브스크립션이 있어야 합니다.
  • https://access.redhat.com/downloads 에서 Red Hat 고객 포털의 제품 다운로드 섹션에 로그인되어 있습니다.

절차

  1. 브라우저를 열고 https://access.redhat.com/downloads 에 액세스합니다.
  2. Infrastructure Management에서 Red Hat Enterprise Linux 8 제품을 클릭합니다.
  3. "Red Hat Enterprise Linux 8 Boot ISO" 옵션에 대해 지금 다운로드 버튼을 클릭합니다.

8.4. Kickstart 파일을 사용하여 Edge 이미지용 RHEL 설치

Kickstart 파일을 사용하는 에지 이미지용 RHEL을 설치하려면 웹 서버를 사용합니다. 웹 서버는 RHEL for Edge 이미지 commit.tar 리포지토리와 Kickstart 파일을 사용하여 RHEL 설치 프로그램을 시작합니다.

사전 요구 사항

절차

  1. libvirt virt-install 을 사용하여 RHEL Anaconda 설치 프로그램을 실행합니다.

    virt-install \
    --name rhel-edge-test-1 \
    --memory 2048 \
    --vcpus 2 \
    --disk path=prepared_disk_image.qcow2,format=qcow2,size=8 \
    --os-variant rhel8 \
    --cdrom /home/username/Downloads/rhel-8-x86_64-boot.iso
  2. 설치 화면에서 다음을 수행합니다.

    그림 8.1. Red Hat Enterprise Linux 부팅 메뉴

    Red Hat Enterprise Linux 부팅 메뉴
    1. e 키를 눌러 추가 커널 매개변수를 추가합니다.

      inst.ks=http://edge_device_ip:port/kickstart.ks

      kernel 매개변수는 RHEL 설치 프로그램에 포함된 RHEL 이미지가 아닌 Kickstart 파일을 사용하여 RHEL을 설치하도록 지정합니다.

    2. 커널 매개 변수를 추가한 후 Ctrl+X 를 눌러 Kickstart 파일을 사용하여 RHEL 설치를 부팅합니다.

      RHEL 설치 프로그램은 서버(HTTP) 끝점에서 Kickstart 파일을 가져와서 시작하고, HTTP 엔드포인트에서 Edge 이미지 커밋을 위한 RHEL을 설치하는 명령을 포함하여 명령을 실행합니다. 설치가 완료되면 RHEL 설치 관리자에 로그인 세부 정보가 표시됩니다.

검증

  1. 로그인 화면에서 사용자 계정 자격 증명을 입력하고 Enter 를 클릭합니다.
  2. RHEL for Edge 이미지가 성공적으로 설치되었는지 확인합니다.

    $ rpm-ostree status

    명령 출력은 이미지 커밋 ID를 제공하고 설치가 성공적으로 완료되었음을 보여줍니다.

    다음은 샘플 출력입니다.

    State: idle
    Deployments:
    * ostree://edge:rhel/8/x86_64/edge
    		  Timestamp: 2020-09-18T20:06:54Z
    			Commit: 836e637095554e0b634a0a48ea05c75280519dd6576a392635e6fa7d4d5e96

9장. 네트워크 기반이 아닌 환경에서 Edge 이미지용 RHEL 배포

RHEL for Edge Container(.tar)와 함께 RHEL for Edge Installer(.iso) 이미지 유형으로 ISO 이미지가 생성됩니다. ISO 이미지는 이미지를 장치에 배포하는 동안 연결이 끊긴 환경에서 사용할 수 있습니다. 그러나 네트워크 액세스에는 다른 아티팩트를 빌드하기 위해 네트워크 액세스가 필요할 수 있습니다.

비 네트워크 기반 환경에 엣지 이미지용 RHEL을 배포하려면 다음과 같은 상위 수준 단계가 포함됩니다.

  1. Edge 컨테이너용 RHEL을 다운로드합니다. 엣지용 RHEL 이미지를 다운로드하는 방법에 대한 자세한 내용은 Edge 용 RHEL 이미지 다운로드를 참조하십시오.
  2. Edge 컨테이너 이미지의 RHEL을 Podman에 로드
  3. Podman에서 Edge Container 이미지에 대한 RHEL을 실행합니다.
  4. Edge Installer용 RHEL 로드
  5. Edge 설치 프로그램 이미지용 RHEL 빌드
  6. .qcow2 디스크 준비
  7. VM(가상 머신) 부팅
  8. 이미지 설치

9.1. 네트워크 기반이 아닌 배포를 위한 Edge 컨테이너 이미지용 RHEL 생성

Edge 컨테이너 OSTree 커밋을 위해 다운로드한 RHEL을 Podman에 로드하여 실행 중인 컨테이너를 빌드할 수 있습니다. 이를 위해 다음 단계를 수행합니다.

사전 요구 사항

  • Edge 컨테이너 OSTree 커밋을 위한 RHEL을 생성하고 다운로드했습니다.
  • 시스템에 Podman 이 설치되어 있어야 합니다. RHEL에 Podman을 설치하는 방법을 참조하십시오.

절차

  1. 에지 컨테이너 OSTree 커밋을 위해 RHEL을 다운로드한 디렉터리로 이동합니다.
  2. 에지 컨테이너 OSTree 커밋을 위한 RHEL을 Podman 에 로드합니다.

    $ sudo podman load -i UUID-container.tar

    명령 출력은 이미지 ID를 제공합니다(예: @8e0d51f061ff1a51d157804362bc875b649b27f2ae1e66566a15e7e6530cec63).

  3. 이전 단계에서 생성한 이미지 ID를 사용하여 에지 컨테이너 이미지의 새 RHEL에 태그를 지정합니다.

    $ sudo podman tag image-ID localhost/edge-container

    podman tag 명령은 로컬 이미지에 추가 이름을 할당합니다.

  4. edge-container 라는 컨테이너를 실행합니다.

    $ sudo podman run -d --name=edge-container -p 8080:8080 localhost/edge-container

    podman run -d --name=edge-container 명령은 localhost/edge-container 이미지를 기반으로 하는 컨테이너에 이름을 할당합니다.

  5. 컨테이너를 나열합니다.

    $ sudo podman ps -a
    CONTAINER ID  IMAGE                               	COMMAND	CREATED    	STATUS                	PORTS   NAMES
    2988198c4c4b  …./localhost/edge-container   /bin/bash  3 seconds ago  Up 2 seconds ago      	edge-container

결과적으로 Podman 은 에지 컨테이너 커밋을 위해 RHEL을 사용하여 OSTree 리포지토리를 제공하는 컨테이너를 실행합니다.

9.2. 네트워크 기반이 아닌 배포에 대한 엣지 설치 프로그램 이미지용 RHEL 생성

RHEL for Edge 컨테이너 커밋과 함께 리포지토리를 제공하도록 실행 중인 컨테이너를 빌드한 후 RHEL for Edge Installer(.iso) 이미지를 생성합니다. RHEL for Edge Installer(.iso)RHEL for Edge Container(.tar) 에서 제공하는 커밋을 가져옵니다. Podman에 RHEL for Edge Container 커밋이 로드된 후 URL 형식으로 OSTree 를 노출합니다.

CLI에서 엣지 설치 관리자 이미지용 RHEL을 생성하려면 단계를 따르십시오.

사전 요구 사항

  • 에지 이미지용 RHEL에 대한 청사진을 생성했습니다.
  • 에지 컨테이너 이미지용 RHEL을 생성하고 웹 서버를 사용하여 배포했습니다.

절차

  1. 에지 설치 프로그램 이미지용 RHEL 생성을 시작합니다.

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

    다음과 같습니다.

    • ref 는 고객이 ostree 리포지토리를 빌드하는 데 사용한 값과 동일합니다.
    • URL-OSTree-repository 는 이미지에 포함할 커밋의 OSTree 리포지토리의 URL입니다. 예: http://10.0.2.2:8080/repository/. 비 네트워크 기반 배포의 경우 엣지 컨테이너 이미지 생성 을 참조하십시오.
    • Blueprint-name 은 에지 설치 프로그램 청사진 이름에 대한 RHEL입니다.
    • image-typeedge-installer 입니다.

      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>

    이미지 빌더는 이미지 빌드 중 실행 중인 컨테이너에서 제공하는 커밋을 가져옵니다.

    이미지 빌드가 완료되면 결과 ISO 이미지를 다운로드할 수 있습니다.

  3. 이미지를 다운로드합니다. Edge 이미지 다운로드를 참조하십시오.

    이미지가 준비되면 비 네트워크 배포에 사용할 수 있습니다. 네트워크 기반 배포가 아닌 경우 Edge 이미지의 RHEL 설치를 참조하십시오.

9.3. 네트워크 기반이 아닌 배포를 위한 Edge 이미지용 RHEL 설치

Edge 이미지에 대한 RHEL을 설치하려면 다음 단계를 따르십시오.

사전 요구 사항

  • Edge Installer ISO 이미지를 위한 RHEL을 생성했습니다.
  • 실행 중인 컨테이너를 중지했습니다.
  • 생성한 커밋을 설치할 디스크 이미지입니다.
  • edk2-ovmf 패키지가 설치되어 있습니다.
  • virt-viewer 패키지가 설치되어 있어야 합니다.
  • 사용자 계정을 사용하여 롤아웃을 사용자 지정할 수 있습니다. RHEL for Edge 이미지 블루프린트의 관리자 계정 생성을 참조하십시오.

    주의

    용량에서 사용자 계정 사용자 지정을 정의하지 않으면 ISO 이미지에 로그인할 수 없습니다.

절차

  1. (.iso) 이미지를 설치할 qcow VM 디스크 파일을 생성합니다. 이는 VM(가상 머신)의 하드 드라이브 이미지입니다. 예를 들어 다음과 같습니다.

    $ qemu-img create -f qcow2 diskfile.qcow2 20G
  2. virt-install 명령을 사용하여 디스크로 VM을 부팅하고 설치 프로그램 ISO를 CD-ROM으로 부팅합니다. 예를 들어 다음과 같습니다.

    $ virt-install \
    --boot uefi \
    --name VM_NAME
    --memory 2048 \
    --vcpus 2 \
    --disk path=diskfile.qcow2
    --cdrom /var/lib/libvirt/images/UUID-installer.iso \
    --os-variant rhel9.0

    이 명령은 virt-install 에 다음을 수행합니다.

    • BIOS 대신 UEFI를 사용하여 부팅하도록 VM에 지시합니다.
    • 설치 ISO를 마운트합니다.
    • 첫 번째 단계에서 만든 하드 드라이브 이미지를 사용합니다.

      Anaconda 설치 프로그램을 제공합니다. RHEL 설치 프로그램이 시작되고 ISO에서 Kickstart 파일을 로드하고 명령을 실행합니다(예: Edge 이미지 커밋용 RHEL 설치). 설치가 완료되면 설치 프로그램에 로그인 세부 정보를 묻는 메시지가 표시됩니다.

      참고

      Anaconda는 설치 중에 컨테이너 커밋을 사용하도록 사전 구성되어 있습니다. 그러나 디스크 파티션, 시간대 등의 시스템 구성을 설정해야 합니다.

  3. virt-viewer 를 사용하여 Anaconda GUI에 연결하여 시스템 구성을 설정합니다.

    $ virt-viewer --connect qemu:///system --wait VM_NAME
  4. 시스템을 재부팅하여 설치를 완료합니다.
  5. 로그인 화면에서 사용자 계정 자격 증명을 지정하고 Enter 를 클릭합니다.

검증 단계

  1. RHEL for Edge 이미지가 성공적으로 설치되었는지 확인합니다.

    $  rpm-ostree status

명령 출력은 이미지 커밋 ID를 제공하고 설치가 성공적으로 완료되었음을 보여줍니다.

10장. 에지 이미지용 RHEL 관리

에지 이미지용 RHEL을 관리하려면 다음 관리 작업을 수행할 수 있습니다.

  • RHEL 웹 콘솔에서 이미지 빌더를 사용하여 에지 이미지용 RHEL 편집
  • 이미지 빌더 명령줄을 사용하여 에지 이미지용 RHEL 편집
  • Edge 이미지에 대한 RHEL 업데이트
  • 노드 정책을 업데이트하도록 노드에서 rpm-ostree 원격 구성
  • Greenboot를 사용하여 Edge 이미지의 RHEL 수동 또는 자동으로 복원

10.1. RHEL 웹 콘솔에서 이미지 빌더를 사용하여 에지 이미지에 대한 RHEL 편집

에지 이미지 청사진의 RHEL을 다음과 같이 편집할 수 있습니다.

  • 필요할 수 있는 구성 요소를 추가합니다.
  • 기존 구성 요소의 버전 수정
  • 기존 구성 요소 제거

10.1.1. RHEL 웹 콘솔에서 이미지 빌더를 사용하여 엣지 이미지용 RHEL에 구성 요소 추가

에지 이미지 청사진의 RHEL에 구성 요소를 추가하려면 다음 사전 요구 사항을 충족한 다음 절차에 따라 해당 청사진을 편집합니다.

사전 요구 사항

  • RHEL 시스템에서 이미지 빌더 대시보드에 액세스했습니다.
  • 에지 이미지용 RHEL에 대한 청사진을 생성했습니다.

절차

  1. 이미지 빌더 대시보드에서 편집하려는 RHEL for Edge 이미지를 클릭합니다.

    특정 청사진을 검색하려면 Filter By Name(필터별 이름) 텍스트 상자에ak 이름을 입력한 다음 Enter 키를 누릅니다.

  2. 청사진의 오른쪽 상단에서 Edit Packages 를 클릭합니다.

    보기가 패키지 편집 모드로 변경됩니다.

  3. Filter By Name 텍스트 상자에 추가할 구성 요소 이름을 입력한 다음 Enter를 누릅니다.

    구성 요소 이름이 포함된 목록이 표시됩니다.

  4. 구성 요소에 인접한 + 기호를 클릭합니다.

    구성 요소가 Blueprint에 추가됩니다.

  5. 커밋 을 클릭합니다.

    청사진 업데이트는 저장되며 보류 중인 커밋이 있는 메시지가 표시됩니다.

  6. 요약 대화 상자에서 변경 사항을 검토한 다음 커밋 을 클릭합니다.

    성공적인 커밋을 확인하는 메시지가 표시됩니다.

    결과적으로 새로운 버전의 청사진이 생성되고 오른쪽 창에 최신 구성 요소가 나열됩니다.

10.1.2. RHEL 웹 콘솔을 사용하여 Edge 이미지에 대한 RHEL의 기존 구성 요소 버전 변경

기본(최신) 버전을 선택했거나ak에 포함된 구성 요소의 버전을 선택했습니다. 필요한 경우 이제 원하는 구성 요소의 버전을 변경할 수 있습니다.

이렇게 하려면 다음 사전 요구 사항을 충족했는지 확인한 후 절차에 따라 해당 청사진의 구성 요소 버전을 변경합니다.

사전 요구 사항

  • RHEL 시스템에서 이미지 빌더 대시보드에 액세스했습니다.
  • 에지 이미지용 RHEL에 대한 청사진을 생성했습니다.
  • Edge 청사진을 위해 RHEL에 하나 이상의 구성 요소를 추가했습니다.

절차

  1. 이미지 빌더 대시보드에서 편집하려는 작업을 클릭합니다.

    특정 청사진을 검색하려면 Filter By Name(필터별 이름) 텍스트 상자에ak 이름을 입력한 다음 Enter 키를 누릅니다.

  2. 청사진의 오른쪽 상단에서 Edit Packages 를 클릭합니다.

    보기가 패키지 편집 모드 변경 사항을 확인하고, 오른쪽 패널에는 현재 청사진에 커밋된 구성 요소 이름이 나열됩니다.

  3. 구성 요소 이름을 클릭합니다.
  4. Component Options Version 드롭다운 목록에서 원하는 버전을 선택합니다.
  5. Apply Changes (변경 사항 적용)을 클릭합니다.

    변경 사항이 저장되고 오른쪽 창에 최신 변경 사항이 나열됩니다.

  6. 커밋 을 클릭합니다.

    새 버전은akak에 저장됩니다. 보류 중인 커밋이 있는 메시지가 표시됩니다.

  7. 요약 대화 상자에서 변경 사항을 검토한 다음 커밋 을 클릭합니다.

    성공적인 커밋을 확인하는 메시지가 표시됩니다.

    결과적으로 새로운 버전의 청사진이 생성되고 오른쪽 창에 최신 구성 요소가 나열됩니다.

10.1.3. RHEL 웹 콘솔에서 이미지 빌더를 사용하여 RHEL for Edge 이미지 기능에서 구성 요소 제거

사용자가 생성한 에지 이미지 청사진에서 하나 이상의 원하지 않는 구성 요소를 제거하려면 다음 사전 요구 사항을 충족한 다음 절차를 따라야 합니다.

사전 요구 사항

  • RHEL 시스템에서 이미지 빌더 대시보드에 액세스했습니다.
  • 에지 이미지용 RHEL에 대한 청사진을 생성했습니다.
  • Edge 청사진을 위해 RHEL에 하나 이상의 구성 요소를 추가했습니다.

절차

  1. 이미지 빌더 대시보드에서 편집하려는 작업을 클릭합니다.

    특정 청사진을 검색하려면 Filter By Name(필터별 이름) 텍스트 상자에ak 이름을 입력한 다음 Enter를 누릅니다.

  2. 청사진의 오른쪽 상단에서 Edit Packages 를 클릭합니다.

    보기가 패키지 편집 모드로 변경됩니다. 오른쪽 패널에는 현재 청사진에 커밋된 구성 요소 이름이 나열됩니다.

  3. More Options 메뉴에서 제거를 클릭합니다.

    필요한 경우 구성 요소 이름을 클릭하고 제거를 클릭합니다.

  4. 커밋 을 클릭합니다.

    보류 중인 커밋이 있는 메시지가 표시됩니다.

  5. 변경 사항을 검토한 다음 커밋 을 클릭합니다.

    성공적인 커밋을 확인하는 메시지가 표시됩니다.

    결과적으로 새로운 버전의 청사진이 생성되고 오른쪽 창에 최신 구성 요소가 나열됩니다.

10.1.4. 명령줄 인터페이스를 사용하여 Edge 이미지 청사진용 RHEL 편집

이미지 빌더 명령줄을 사용하여 RHEL for Edge 이미지의 사양을 변경할 수 있습니다. 이렇게 하려면 다음 사전 요구 사항을 충족했는지 확인한 후 절차에 따라 해당 청사진을 편집합니다.

사전 요구 사항

  • 이미지 빌더 명령줄에 액세스할 수 있습니다.
  • Edge 이미지 청사진을 위한 RHEL을 생성했습니다.

절차

  1. 청사진을 로컬 텍스트 파일로 저장(export)합니다.

    # composer-cli blueprints save BLUEPRINT-NAME
  2. 텍스트 편집기로 선택한 텍스트 편집기를 사용하여 BLUEPRINT-NAME.toml 파일을 편집하고 변경합니다.

    편집 작업을 완료하기 전에 파일이 유효한인지 확인합니다.

  3. 버전 번호를 늘립니다.

    Semantic Versioning scheme을 사용해야 합니다.

    참고

    버전을 변경하지 않으면 버전의 패치 구성 요소가 자동으로 증가합니다.

  4. 콘텐츠가 유효한 TOML 사양인지 확인합니다. 자세한 내용은 TOML 설명서를 참조하십시오.

    참고

    TOML 문서는 커뮤니티 제품이며 Red Hat에서 지원하지 않습니다. https://github.com/toml-lang/toml/issues 에서 툴과 관련된 모든 문제를 보고할 수 있습니다.

  5. 파일을 저장하고 편집기를 종료합니다.
  6. 이미지 빌더 명령줄로 다시 푸시(가져오기)합니다.

    # composer-cli blueprints push BLUEPRINT-NAME.toml
    참고

    이미지 빌더 명령줄로 다시 푸시할 때 .toml 확장자를 포함하여 파일 이름을 제공합니다.

  7. 이미지 빌더에 업로드된 콘텐츠가 편집 내용과 일치하는지 확인합니다.

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

    # composer-cli blueprints depsolve BLUEPRINT-NAME

10.2. 에지 이미지용 RHEL 업데이트

10.2.1. RHEL for Edge 이미지 업데이트 배포 방법

Edge 이미지용 RHEL을 사용하면 업데이트를 수동으로 배포하거나 배포 프로세스를 자동화할 수 있습니다. 업데이트는 각 업데이트 상태를 알 수 있는 원자성 방식으로 적용되며 업데이트는 재부팅 시에만 적용됩니다. 장치를 재부팅할 때까지 변경 사항이 표시되지 않으므로 재부팅을 예약하여 가능한 최고 시간을 보장할 수 있습니다.

이미지 업데이트 중에 업데이트된 운영 체제 콘텐츠만 네트워크를 통해 전송됩니다. 이렇게 하면 전체 이미지를 전송하는 것보다 배포 프로세스가 더 효율적입니다. /usr 의 운영 체제 바이너리와 라이브러리는 읽기 전용 이며 읽기 및 쓰기 상태는 /var/etc 디렉터리에서 유지됩니다.

새 배포로 이동할 때 /etc/var 디렉터리가 읽기 및 쓰기 권한이 있는 새 배포로 복사됩니다. /usr 디렉터리는 읽기 전용 권한이 있는 새 배포 디렉터리에 소프트 링크로 복사됩니다.

다음 다이어그램은 에지 이미지 업데이트 배포 프로세스를 위한 RHEL을 보여줍니다.

이미지 배포

기본적으로 새 시스템은 chroot 작업과 유사한 절차를 사용하여 부팅됩니다. 새로운 /sysroot 디렉토리에는 주로 다음과 같은 부분이 있습니다.

  • /sysroot/ostree/repo 디렉터리에 있는 리포지토리 데이터베이스입니다.
  • 시스템 업데이트의 각 작업에서 생성되는 /sysroot/ostree/deploy/rhel/deploy 디렉터리의 파일 시스템 개정입니다.
  • 이전 시점에서 배포에 연결되는 /sysroot/ostree/boot 디렉터리입니다. /ostree/sysroot/ostree 에 대한 소프트 링크입니다. /sysroot/ostree/boot 디렉토리의 파일은 중복되지 않습니다. 배포 중에 변경되지 않은 경우 동일한 파일이 사용됩니다. 파일은 /sysroot/ostree/repo/objects 디렉터리에 저장된 다른 파일에 하드 링크입니다.

운영 체제는 다음과 같은 방식으로 배포를 선택합니다.

  1. dracut 툴은 initramfs 루트 파일 시스템의 ostree 커널 인수를 구문 분석하고 /usr 디렉터리를 읽기 전용 바인드 마운트로 설정합니다.
  2. /sysroot 의 배포 디렉터리를 / 디렉터리에 바인딩합니다.
  3. MS_MOVE 마운트 플래그를 사용하여 이미 마운트된 운영 체제를 다시 마운트

문제가 발생하면 rpm-ostree cleanup 명령으로 이전 배포를 제거하여 배포 롤백을 수행할 수 있습니다. 각 클라이언트 머신에는 /ostree/repo 에 저장된 OSTree 리포지토리와 /ostree/deploy/$STATEROOT/$CHECKSUM 에 저장된 배포 세트가 포함되어 있습니다.

RHEL for Edge 이미지의 배포 업데이트를 통해 여러 장치에 걸쳐 시스템 일관성이 향상되고 재현이 쉬워지고 사전 및 후 시스템 상태 변경 간의 격리를 개선할 수 있습니다.

10.2.2. Edge 이미지 업데이트용 RHEL 배포 수동으로 배포

Edge 청사진에 대한 RHEL을 편집한 후 이미지 커밋을 업데이트할 수 있습니다. 이미지 빌더는 에지 이미지에 대해 업데이트된 RHEL에 대한 새 커밋을 생성합니다. 이 새 커밋을 사용하여 최신 패키지 버전 또는 추가 패키지와 함께 이미지를 배포합니다.

에지 이미지용 RHEL을 배포하려면 사전 요구 사항을 충족하고 절차를 따르십시오.

사전 요구 사항

절차

  1. 편집한 이미지 빌더 대시보드에서 이미지 생성 을 클릭합니다.
  2. 이미지 생성 창에서 다음 단계를 수행합니다.

    1. Image output type 드롭다운 목록에서 RHEL for EdgeECDHE (.tar) 을 선택합니다. 다음을 클릭합니다.
    2. OSTree 설정 페이지에서 다음을 입력합니다.

      1. Repository URL 에서 이미지에 포함할 커밋의 OSTree 리포지토리에 대한 URL을 입력합니다. 예: http://10.0.2.2:8080/repository/. Edge 이미지용 RHEL을 설치할 웹 서버 설정을 참조하십시오.
      2. 부모 커밋 텍스트 박스에서 이전에 생성된 상위 커밋 ID를 지정합니다. 에지 이미지 커밋용 RHEL 추출 을 참조하십시오.
      3. Ref 텍스트 상자에서 커밋 이름을 지정하거나 비워 둘 수 있습니다. 기본적으로 웹 콘솔은 Refrhel/8/arch_name/edge 로 지정합니다. 다음을 클릭합니다.
    3. Customizations 페이지에서 다음을 수행합니다.

      1. 선택 사항: 시스템에서 호스트 이름을 입력합니다. 이를 추가하지 않으면 운영 체제가 호스트 이름을 결정합니다. 다음을 클릭합니다.
      2. 선택 사항: 사용자 추가를 클릭합니다. Username, password 및 SSH 키를 입력합니다. 사용자를 서버 관리자로 표시할 수 있습니다.
    4. 선택 사항: 패키지 페이지에서:

      1. 사용 가능한 패키지에서 패키지 이름을 입력하여 이미지를 사용자 지정합니다. 다음을 클릭합니다.
    5. 검토 페이지에서 사용자 정의를 확인합니다. 저장을 클릭합니다. Create image 버튼을 활성화합니다.
    6. 이미지 생성을 클릭합니다. 이미지 빌더는 업데이트된 기능 향상을 위한 RHEL for Edge 이미지를 생성합니다.

      에지 이미지 생성 진행 상황을 보려면 이동 경로에서akak 이름을 클릭한 다음 이미지 탭을 클릭합니다.

      참고

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

      결과 이미지에는 추가한 최신 패키지(있는 경우)가 포함되어 있으며 원래 커밋 ID 가 상위로 설정됩니다.

  3. 엣지 이미지에 대해 결과 RHEL을 다운로드합니다. Edge 이미지용 RHEL을 다운로드하는 방법에 대한 자세한 내용은 Edge 이미지 용 RHEL 다운로드를 참조하십시오.
  4. OSTree 커밋을 추출합니다. OSTree 커밋을 추출하는 방법에 대한 자세한 내용은 에지 이미지 커밋용 RHEL 추출 을 참조하십시오.
  5. 이번에는 하위 커밋 ID를 제공하는 Docker 컨테이너를 빌드합니다.

    # podman build -t name-of-server --build-arg commit=uuid-child_commit.tar .
  6. 컨테이너를 실행합니다.

    # podman run --rm -p 8000:80 name-of-server
  7. 프로비저닝된 RHEL 시스템의 원래 에지 이미지에서 현재 상태를 확인합니다.

    $ rpm-ostree status

    새 커밋 ID가 없는 경우 다음 명령을 실행하여 사용 가능한 업그레이드가 있는지 확인합니다.

    $ rpm-ostree upgrade --check

    명령 출력은 현재 활성화된 OSTree 커밋 ID를 제공합니다.

  8. 새 OSTree 커밋 ID를 사용할 수 있도록 OSTree를 업데이트합니다.

    $ rpm-ostree upgrade

    ostree는 리포지토리에 업데이트가 있는지 확인합니다. yes인 경우 이 새 커밋 업데이트의 배포를 활성화할 수 있도록 업데이트를 가져와서 시스템을 재부팅하도록 요청합니다.

  9. 현재 상태를 다시 확인합니다.

    $ rpm-ostree status

    이제 2개의 커밋을 사용할 수 있는 것을 확인할 수 있습니다.

    • 활성 상위 커밋입니다.
    • 활성 상태가 아니며 1개의 추가 차이를 포함하는 새 커밋입니다.
  10. 새 배포를 활성화하고 새 커밋을 활성화하려면 시스템을 재부팅합니다.

    # systemctl reboot

    Anaconda 설치 프로그램은 새 배포로 재부팅됩니다. 로그인 화면에서 부팅할 수 있는 새 배포가 표시됩니다.

  11. 최신 배포(commit)로 부팅하려면 rpm-ostree upgrade 명령에서 부팅 항목을 자동으로 주문하여 새 배포가 목록의 첫 번째가 되도록 합니다. 선택적으로 키보드의 화살표 키를 사용하여 GRUB 메뉴 항목을 선택하고 Enter 키를 누릅니다.
  12. 로그인 사용자 계정 자격 증명을 입력합니다.
  13. OSTree 상태를 확인합니다.

    $ rpm-ostree status

    명령 출력에서는 활성 커밋 ID를 제공합니다.

  14. 변경된 패키지를 보려면 상위 커밋과 새 커밋 간에 diff를 실행합니다.

    $ rpm-ostree db diff parent_commit new_commit

    업데이트에서는 설치한 패키지가 사용 가능하고 사용할 준비가 되었음을 보여줍니다.

10.2.3. 명령줄을 사용하여 에지 이미지 업데이트를 수동으로 위한 RHEL 배포

Edge 청사진에 대한 RHEL을 편집한 후 이미지 커밋을 업데이트할 수 있습니다. 이미지 빌더는 에지 이미지에 대해 업데이트된 RHEL에 대한 새 커밋을 생성합니다. 새 커밋을 사용하여 CLI를 사용하여 최신 패키지 버전이 있는 이미지 또는 추가 패키지와 함께 배포합니다.

CLI를 사용하여 에지 이미지 업데이트 RHEL을 배포하려면 사전 요구 사항을 충족한 다음 절차를 따르십시오.

사전 요구 사항

절차

  1. 다음 인수를 사용하여 엣지 커밋(.tar) 이미지를 위한 RHEL을 만듭니다.

    # composer-cli compose start-ostree --ref ostree_ref --url URL-OSTree-repository -blueprint_name_ image-type

    다음과 같습니다.

  2. RHEL에서 Edge 이미지 생성 진행 상황을 확인합니다.

    # composer-cli compose status
    참고

    이미지 생성 프로세스를 완료하는 데 최대 10~30분이 걸릴 수 있습니다.

    결과 이미지에는 추가한 최신 패키지(있는 경우)가 포함되며 원래 커밋 ID 가 상위로 포함됩니다.

  3. 엣지 이미지에 대해 결과 RHEL을 다운로드합니다. 자세한 내용은 이미지 빌더 명령줄 인터페이스를 사용하여 에지용 RHEL 이미지 다운로드를 참조하십시오.
  4. OSTree 커밋을 추출합니다. 자세한 내용은 에지 이미지 커밋용 RHEL 추출 을 참조하십시오.
  5. httpd를 사용하여 OSTree 커밋을 제공합니다. Edge 이미지용 RHEL을 설치할 웹 서버 설정을 참조하십시오.
  6. 원래 에지 이미지에서 프로비저닝된 RHEL 시스템에서 현재 상태를 확인합니다.

    $ rpm-ostree status

    새 커밋 ID가 없는 경우 다음 명령을 실행하여 사용 가능한 업그레이드가 있는지 확인합니다.

    $ rpm-ostree upgrade --check

    명령 출력은 현재 활성화된 OSTree 커밋 ID를 제공합니다.

  7. 새 OSTree 커밋 ID를 사용할 수 있도록 OSTree를 업데이트합니다.

    $ rpm-ostree upgrade

    ostree는 리포지토리에 업데이트가 있는지 확인합니다. yes인 경우 업데이트를 가져와서 시스템을 재부팅하여 새 커밋 업데이트 배포를 활성화할 수 있도록 요청합니다.

  8. 현재 상태를 다시 확인합니다.

    $ rpm-ostree status

    이제 2개의 커밋을 사용할 수 있는 것으로 표시됩니다.

    • 활성 상위 커밋
    • 활성 상태가 아니며 1개의 추가 차이를 포함하는 새 커밋
  9. 새 배포를 활성화하고 새 커밋을 활성화하려면 시스템을 재부팅합니다.

    # systemctl reboot

    Anaconda 설치 프로그램은 새 배포로 재부팅됩니다. 로그인 화면에서 부팅할 수 있는 새 배포가 표시됩니다.

  10. 최신 배포로 부팅하려면 rpm-ostree upgrade 명령을 실행하면 새 배포가 먼저 되도록 부팅 항목이 자동으로 정렬됩니다. 선택적으로 키보드의 화살표 키를 사용하여 GRUB 메뉴 항목을 선택하고 Enter 키를 누릅니다.
  11. 계정 자격 증명을 사용하여 로그인합니다.
  12. OSTree 상태를 확인합니다.

    $ rpm-ostree status

    명령 출력에서는 활성 커밋 ID를 제공합니다.

  13. 변경된 패키지를 보려면 상위 커밋과 새 커밋 간에 diff를 실행합니다.

    $ rpm-ostree db diff parent_commit new_commit

    업데이트에서는 설치한 패키지가 사용 가능하고 사용할 준비가 되었음을 보여줍니다.

10.2.4. 네트워크 기반이 아닌 배포를 위해 Edge 이미지 업데이트의 경우 RHEL을 수동으로 배포

Edge 청사진에 대한 RHEL을 편집한 후 이미지 커밋을 업데이트할 수 있습니다. 이미지 빌더는 에지 이미지에 대해 업데이트된 RHEL에 대한 새 커밋을 생성합니다. 최신 패키지 버전 또는 추가 패키지로 이미지를 배포하려면 이 새 커밋을 사용합니다.

에지 이미지용 RHEL을 배포하려면 사전 요구 사항을 충족하고 절차를 따르십시오.

사전 요구 사항

절차

  1. 편집한 이미지 빌더 대시보드에서 이미지 생성 을 클릭합니다.
  2. 이미지 생성 창에서 다음 단계를 수행합니다.

    1. 유형 드롭다운 목록에서 에지 컨테이너(.tar)에 대해 RHEL 을 선택합니다.
    2. 부모 커밋 텍스트 박스에서 이전에 생성한 상위 커밋 ID를 지정합니다. 에지 이미지 커밋용 RHEL 추출 을 참조하십시오.
    3. Repository textbox에서 이미지에 포함할 커밋의 OSTree 리포지토리에 대한 URL을 지정합니다. 예: http://10.0.2.2:8080/repository/
    4. Ref textbox에서 이미지에 삽입할 에지 컨테이너 커밋을 위한 RHEL 생성 중에 제공한 것과 동일한 참조를 지정합니다. 예를 들면 rhel/edge/test 입니다.
    5. 생성을 클릭합니다. 이미지 빌더는 업데이트된 기능 향상을 위한 RHEL for Edge 이미지를 생성합니다.

      에지 이미지 생성에 대한 RHEL의 진행 상황을 보려면 이동 경로에서akak 이름을 클릭한 다음 이미지 탭을 클릭합니다.

      참고

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

      결과 이미지에는 추가한 최신 패키지(있는 경우)가 포함되며 원래 커밋 ID 가 상위로 포함됩니다.

  3. 엣지 이미지에 대해 결과 RHEL을 다운로드합니다. Edge 이미지용 RHEL을 다운로드하는 방법에 대한 자세한 내용은 Edge 이미지 용 RHEL 다운로드를 참조하십시오.
  4. 이번에는 하위 커밋 ID를 제공하여 에지 컨테이너 이미지의 RHEL을 Podman에 로드합니다.

    $ cat ./child-commit_ID-container.tar | sudo podman load
  5. Podman 을 실행합니다.

    #  sudo podman run -p 8080:8080 localhost/edge-test
  6. 프로비저닝된 RHEL 시스템의 원래 에지 이미지에서 현재 상태를 확인합니다.

    $ rpm-ostree status

    새 커밋 ID가 없는 경우 다음 명령을 실행하여 사용 가능한 업그레이드가 있는지 확인합니다.

    $ rpm-ostree upgrade --check

    사용 가능한 업데이트가 있는 경우 명령 출력은 현재 활성 OSTree 커밋 ID와 같이 OSTree 리포지토리에서 사용 가능한 업데이트에 대한 정보를 제공합니다. 또는 사용 가능한 업데이트가 없음을 알리는 메시지가 표시됩니다.

  7. 새 OSTree 커밋 ID를 사용할 수 있도록 OSTree를 업데이트합니다.

    $ rpm-ostree upgrade

    ostree는 리포지토리에 업데이트가 있는지 확인합니다. yes인 경우 이 새 커밋 업데이트의 배포를 활성화할 수 있도록 업데이트를 가져와서 시스템을 재부팅하도록 요청합니다.

  8. 현재 상태를 확인합니다.

    $ rpm-ostree status

    이제 2개의 커밋을 사용할 수 있는 것을 확인할 수 있습니다.

    • 활성 상위 커밋입니다.
    • 활성 상태가 아니며 1개의 추가 차이를 포함하는 새 커밋입니다.
  9. 새 배포를 활성화하고 새 커밋을 활성화하려면 시스템을 재부팅합니다.

    # systemctl reboot

    Anaconda 설치 프로그램은 새 배포로 재부팅됩니다. 로그인 화면에서 부팅할 수 있는 새 배포가 표시됩니다.

  10. 최신 커밋/배포로 부팅하려면 rpm-ostree upgrade 명령에서 새 배포가 먼저 되도록 부팅 항목을 자동으로 정렬합니다. 선택적으로 키보드의 화살표 키를 사용하여 GRUB 메뉴 항목을 선택하고 Enter 키를 누릅니다.
  11. 로그인 사용자 계정 자격 증명을 입력합니다.
  12. OSTree 상태를 확인합니다.

    $ rpm-ostree status

    명령 출력에서는 활성 커밋 ID를 제공합니다.

  13. 변경된 패키지를 보려면 상위 커밋과 새 커밋 간에 diff를 실행합니다.

    $ rpm-ostree db diff parent_commit new_commit

    업데이트에서는 설치한 패키지가 사용 가능하고 사용할 준비가 되었음을 보여줍니다.

10.3. Edge 자동 이미지 업데이트용 RHEL 배포

에지 장치에 에지 이미지용 RHEL을 설치한 후 사용 가능한 이미지 업데이트를 확인하고(있는 경우) 자동으로 적용할 수 있습니다.

rpm-ostreed-automatic.service (systemd 서비스) 및 rpm-ostreed-automatic.timer (systemd 타이머)는 검사 및 업그레이드 빈도를 제어합니다. 사용 가능한 업데이트(있는 경우)는 준비됨 배포로 표시됩니다.

자동 이미지 업데이트를 배포하려면 다음 높은 수준의 단계를 수행해야 합니다.

  • 이미지 업데이트 정책 업데이트
  • 업데이트 자동 다운로드 및 스테이징 사용

10.3.1. Edge 이미지 업데이트 정책의 RHEL 업데이트 업데이트

이미지 업데이트 정책을 업데이트하려면 Edge 장치의 /etc/rpm-ostreed.conf 위치에 있는 rpm-ostreed.conf 파일에서 AutomaticUpdatePolicyIdleExitTimeout 설정을 사용합니다.

AutomaticUpdatePolicy 설정은 자동 업데이트 정책을 제어하고 다음과 같은 업데이트 확인 옵션이 있습니다.

  • none: 자동 업데이트를 비활성화합니다. 기본적으로 AutomaticUpdatePolicy 설정은 none 으로 설정됩니다.
  • Check: rpm-ostree 상태로 사용 가능한 업데이트를 표시하는 충분한 메타데이터를 다운로드합니다.
  • Stage: 재부팅에 적용되는 업데이트를 다운로드하여 압축을 풉니다.

IdleExitTimeout 설정은 데몬이 종료되고 다음 옵션이 있기 전에 비활성 시간(초)을 제어합니다.

  • 0: auto-exit를 비활성화합니다.
  • 60: 기본적으로 IdleExitTimeout 설정은 60 으로 설정됩니다.

자동 업데이트를 활성화하려면 다음 단계를 수행합니다.

절차

  1. /etc/rpm-ostreed.conf 파일에서 다음을 업데이트합니다.

    • AutomaticUpdatePolicy 값을 변경하여 을 확인합니다.
    • 업데이트 검사를 실행하려면 IdleExitTimeout 에 대한 값(초)을 지정합니다.
  2. rpm-ostreed 서비스를 다시 로드하고 systemd 타이머를 활성화합니다.

    # systemctl reload rpm-ostreed
    # systemctl enable rpm-ostreed-automatic.timer --now
  3. rpm-ostree 상태를 확인하여 자동 업데이트 정책이 구성되고 시간이 활성화되었는지 확인합니다.

    # rpm-ostree status

    명령 출력은 다음을 표시합니다.

    State: idle; auto updates enabled (check; last run <minutes> ago)

    또한 출력에는 사용 가능한 업데이트에 대한 정보도 표시됩니다.

10.3.2. 업데이트의 Edge 자동 다운로드 및 스테이징용 RHEL 활성화

이미지 업데이트를 확인하기 위해 이미지 업데이트 정책을 업데이트한 후 업데이트 세부 정보와 함께 업데이트되는 경우 업데이트가 업데이트됩니다. 업데이트를 적용하기로 결정하는 경우 정책을 활성화하여 자동으로 업데이트를 다운로드하고 스테이징합니다. 그런 다음 사용 가능한 이미지 업데이트가 다운로드되고 배포에 스테이징됩니다. 업데이트가 적용되며 에지 장치를 재부팅할 때 적용됩니다.

자동 다운로드 및 업데이트에 대한 정책을 활성화하려면 다음 업데이트를 수행합니다.

절차

  1. /etc/rpm-ostreed.conf 파일에서 'AutomaticUpdatePolicy'를 스테이징 으로 업데이트합니다.
  2. rpm-ostreed 서비스를 다시 로드합니다.

    # systemctl enable rpm-ostreed-automatic.timer --now
  3. rpm-ostree 상태 확인

    # rpm-ostree status

    명령 출력은 다음을 표시합니다.

    State: idle
    AutomaticUpdates: stage; rpm-ostreed-automatic.timer: last run <time> ago
  4. 업데이트를 시작하려면 타이머가 업데이트를 시작할 때까지 기다리거나 서비스를 수동으로 시작할 수 있습니다.

    # systemctl start rpm-ostreed-automatic.service

    업데이트가 시작되면 rpm-ostree 상태에 다음이 표시됩니다.

    # rpm-ostree status
    State: busy
    AutomaticUpdates: stage; rpm-ostreed-automatic.service: running
    Transaction: automatic (stage)

    업데이트가 완료되면 새 배포가 배포 목록에 준비되고 원래 부팅된 배포는 그대로 유지됩니다. 새 배포를 사용하여 시스템을 부팅할지 또는 다음 업데이트를 기다릴지 여부를 결정할 수 있습니다.

    배포 목록을 보려면 rpm-ostree status 명령을 실행합니다.

    다음은 샘플 출력입니다.

    # rpm-ostree status
    State: idle
    AutomaticUpdates: stage; rpm-ostreed-automatic.timer: last run <time> ago
    Deployments:

    업데이트된 패키지 세부 정보를 사용하여 배포 목록을 보려면 rpm-ostree status -v 명령을 실행합니다.

10.4. 에지 이미지용 RHEL 롤백

업데이트된 이미지가 성공적으로 배포되었는지 확인할 수 있습니다. 배포에 실패하면 이전 버전(커밋)으로 롤백할 수 있습니다. 이전 기능 상태로 롤백하려면 단계를 수동으로 수행하거나 자동화된 프로세스를 사용할 수 있습니다.

10.4.1. RHEL for Edge 이미지 롤백 방법

Edge 이미지용 RHEL을 사용하면 트랜잭션 업데이트만 운영 체제에 적용됩니다. 트랜잭션 업데이트를 사용하면 실패한 업데이트를 마지막으로 알려진 양호한 상태로 쉽게 롤백하여 업데이트 중에 시스템 실패를 방지할 수 있습니다.

Greenboot와 함께 지능형 롤백을 사용하여 애플리케이션 안정성과 보안 업데이트 적용 사이에서 발생하는 문제를 해결할 수 있습니다.

Greenboot는 rpm-ostree 를 활용하고 시스템 시작 시 실행되는 사용자 정의 상태 점검을 실행합니다. 문제가 발생하는 경우 시스템은 변경 사항을 롤백하고 마지막 작업 상태를 유지합니다. rpm-ostree 업데이트를 배포할 때 스크립트를 실행하여 업데이트 후에도 중요한 서비스가 계속 작동할 수 있는지 확인합니다. 시스템이 작동하지 않으면 업데이트가 시스템의 마지막 알려진 작업 버전으로 롤백됩니다. 이 프로세스를 통해 엣지 장치용 RHEL이 운영 상태에 있습니다.

다음은 Greenboot 디렉터리 구조입니다.

예 10.1. Greenboot 디렉터리 구조

etc
└─ greenboot
   ├─ check
   |   └─ required.d
   |   └─ init.py
   └─ green.d
   └─ red.d
/etc/greenboot/check/required.d
실패하지 않아야 하는 상태 점검을 포함합니다.
/etc/greenboot/check/wanted.d
실패할 수 있는 상태 점검을 포함합니다.
/etc/greenboot/green.d
성공적으로 부팅된 후 실행할 스크립트가 포함되어 있습니다.
/etc/greenboot/red.d
부팅 실패 후 실행할 스크립트가 포함되어 있습니다. 시스템은 세 번 부팅하려고 시도하며 오류가 발생하는 경우 스크립트를 실행합니다.

다음 다이어그램은 에지 이미지 롤백 프로세스의 RHEL을 보여줍니다.

이미지 복원 프로세스

10.4.2. 에지 이미지용 RHEL 롤백 수동

에지 이미지 업데이트용 RHEL 배포 실패 또는 업데이트가 성공적으로 작동하지 않으면 수동으로 이전 배포 버전으로 롤백할 수 있습니다.

이전 버전으로 롤백하려면 다음 단계를 수행합니다.

절차

  1. 롤백 명령을 실행합니다.

    # rpm-ostree rollback

    명령 출력은 이동 중인 커밋 ID에 대한 세부 정보를 제공하고 제거 중인 패키지의 세부 정보와 함께 완료된 트랜잭션을 표시합니다.

  2. 시스템을 재부팅합니다.

    # systemctl reboot

    명령은 안정적인 콘텐츠를 사용하여 이전 커밋을 활성화합니다. 변경 사항이 적용되고 이전 버전이 복원됩니다.

10.4.3. 자동화된 프로세스를 사용하여 에지 이미지용 RHEL 롤백

Greenboot 검사는 부팅 프로세스에 통합된 프레임워크를 제공하며 상태 점검이 실패하면 rpm-ostree 롤백을 트리거할 수 있습니다. 상태 점검의 경우 상태 점검이 통과되었는지 또는 실패했는지 여부를 나타내는 사용자 지정 스크립트를 생성할 수 있습니다. 결과에 따라 롤백이 트리거되는 시기를 결정할 수 있습니다.

상태 점검 스크립트를 생성하려면 다음 단계를 수행합니다.

절차

  1. 표준 종료 코드 0 을 반환하는 스크립트를 생성합니다.

    예를 들어 다음 스크립트는 구성된 DNS 서버를 사용할 수 있는지 확인합니다.

    #!/bin/bash
    
    DNS_SERVER=$(grep ^nameserver /etc/resolv.conf | head -n 1 | cut -f2 -d" ")
    COUNT=0
    # check DNS server is available
    ping -c1 $DNS_SERVER
    while [ $? != '0' ] && [ $COUNT -lt 10 ]; do
    ((COUNT++))
    echo "Checking for DNS: Attempt $COUNT ."
    sleep 10
    ping -c 1 $DNS_SERVER
    done
  2. /etc/greenboot/check/required.d/ 에서 상태 점검을 위한 실행 파일을 포함합니다.

    chmod +x check-dns.sh

    다음 재부팅 중 스크립트는 시스템이 boot-complete.target에 입력되기 전에 부팅 프로세스의 일부로 실행됩니다. 상태 점검에 성공하면 조치가 취해지지 않습니다. 상태 점검이 실패하면 업데이트를 실패로 표시하고 이전 업데이트로 롤백하기 전에 시스템이 여러 번 재부팅됩니다.

검증 단계

기본 게이트웨이에 연결할 수 있는지 확인하려면 다음 상태 점검 스크립트를 실행합니다.

  1. 표준 종료 코드 0 을 반환하는 스크립트를 생성합니다.

    #!/bin/bash
    
    DEF_GW=$(ip r | awk '/^default/ {print $3}')
    SCRIPT=$(basename $0)
    
    count=10
    connected=0
    ping_timeout=5
    interval=5
    
    while [ $count -gt 0 -a $connected -eq 0 ]; do
      echo "$SCRIPT: Pinging default gateway $DEF_GW"
      ping -c 1 -q -W $ping_timeout $DEF_GW > /dev/null 2>&1 && connected=1 || sleep $interval
      ((--count))
    done
    
    if [ $connected -eq 1 ]; then
      echo "$SCRIPT: Default gateway $DEF_GW is reachable."
      exit 0
    else
      echo "$SCRIPT: Failed to ping default gateway $DEF_GW!" 1>&2
      exit 1
    fi
  2. /etc/greenboot/check/required.d/ 디렉터리에 상태 점검을 위한 실행 파일을 포함합니다.

    chmod +x check-gw.sh

부록 A. 용어 및 명령

rpm ostree 용어 및 명령에 대해 자세히 알아보십시오.

A.1. ostree 및 rpm-ostree 용어

다음은 OSTree 및 rpm-ostree 이미지에 대한 컨텍스트에서 사용되는 몇 가지 유용한 용어입니다.

표 A.1. ostree 및 rpm-ostree 용어

용어정의

OSTree

Linux 기반 운영 체제 버전을 관리하는 데 사용되는 툴입니다. OSTree 트리 보기는 Git과 유사하며 유사한 개념을 기반으로 합니다.

rpm-ostree

운영 체제 업데이트를 호스팅하는 하이브리드 이미지 또는 시스템 패키지입니다.

commit

운영 체제의 릴리스 또는 이미지 버전입니다. 이미지 빌더는 에지 이미지에 대한 RHEL에 대한 ostree 커밋을 생성합니다. 이러한 이미지를 사용하여 에지 서버에서 RHEL을 설치하거나 업데이트할 수 있습니다.

refs

ostree의 분기를 나타냅니다. 항상 최신 커밋으로 refs가 확인됩니다. 예를 들어 rhel/8/x86_64/edge.

버전 (Rev)

특정 커밋을 위한 SHA-256

원격

ostree 콘텐츠를 호스팅하는 http 또는 https 끝점입니다. 이는 yum 리포지토리의 baseurl과 유사합니다.

static-delta

ostree 이미지의 업데이트는 항상 delta 업데이트입니다. Edge 이미지용 RHEL의 경우 파일 수로 인해 TCP 오버헤드가 예상보다 클 수 있습니다. TCP 오버헤드를 방지하기 위해 특정 커밋 간에 static-delta를 생성하고 단일 연결로 업데이트를 보낼 수 있습니다. 이 최적화는 제한된 연결을 통한 대규모 배포에 도움이 됩니다.

A.2. ostree 명령

다음 표에서는 OSTree 이미지를 설치하거나 관리할 때 사용할 수 있는 몇 가지 OSTree 명령을 제공합니다.

표 A.2. ostree 명령

ostree pull

ostree pull-local --repo [path] src

ostree pull-local <path> <rev> --repo=<repo-path>

ostree pull <URL> <rev> --repo=<repo-path>

ostree 요약

ostree summary -u --repo=<repo-path>

Refs 보기

ostree refs --repo ~/Code/src/osbuild-iot/build/repo/ --list

리포지토리에서 커밋 보기

ostree log --repo=/home/gicmo/Code/src/osbuild-iot/build/repo/ <REV>

커밋 검사

ostree show --repo build/repo <REV>

리포지토리의 원격 나열

ostree remote list --repo <repo-path>

REV 해결

ostree rev-parse --repo ~/Code/src/osbuild-iot/build/repo fedora/x86_64/osbuild-demo

ostree rev-parse --repo ~/Code/src/osbuild-iot/build/repo b3a008eceeddd0cfd

static-delta 생성

ostree static-delta generate --repo=[path] --from=REV --to=REV

GPG 키를 사용하여 기존 ostree 커밋에 서명

ostree gpg-sign --repo=<repo-path> --gpg-homedir <gpg_home> COMMIT KEY-ID…

A.3. rpm-ostree 명령

다음 표에서는 OSTree 이미지를 설치하거나 관리할 때 사용할 수 있는 몇 가지 rpm-ostree 명령을 제공합니다.

표 A.3. rpm-ostree 명령

명령설명

rpm-ostree --repo=/home/gicmo/Code/src/osbuild-iot/build/repo/ db list <REV>

이 명령은 <REV> 커밋에 있는 패키지가 리포지토리에 나열됩니다.

rpm-ostree rollback

ostree는 배포 라고 하는 부트 로더 항목 목록을 관리합니다. 인덱스 0의 항목은 기본 부트 로더 항목입니다. 각 항목에는 별도의 /etc 디렉토리가 있지만 모든 항목은 단일 /var 디렉토리를 공유합니다. 부트 로더를 사용하여 시작을 중단하려면 Tab을 눌러 항목 중 하나를 선택할 수 있습니다. 그러면 이전 상태로 롤백합니다. 즉, 기본 배포 변경사항은 기본값이 아닌 항목과 함께 배치됩니다.

rpm-ostree 상태

이 명령은 사용 중인 현재 배포에 대한 정보를 제공합니다. 목록의 첫 번째 배포가 부팅 시 기본값으로 설정되도록 가능한 모든 배포의 이름과 참조를 나열합니다. *로 표시된 배포는 현재 부팅된 배포이며 'r'로 표시는 최신 업그레이드를 나타냅니다.

rpm-ostree db list

이 명령을 사용하여 커밋 또는 커밋 내에 있는 패키지를 확인합니다. 하나 이상의 커밋을 지정해야 하지만 하나 이상의 커밋 범위도 작동해야 합니다.

rpm-ostree db diff

두 리비(revisions)의 트리 간 패키지가 어떻게 다른지 표시하려면 이 명령을 사용합니다. 리v가 제공되지 않으면 부팅된 커밋이 보류 중인 커밋과 비교됩니다. 하나의 rev만 제공되면 부팅된 커밋이 해당 rev와 비교됩니다.

rpm-ostree upgrade

이 명령은 현재 트리의 최신 버전을 다운로드하고 이를 배포하여 다음 부팅의 기본값으로 현재 트리를 설정합니다. 이는 실행 중인 파일 시스템 트리에 영향을 미치지 않습니다. 변경 사항을 적용하려면 재부팅해야 합니다.

추가 리소스

  • [citetitle] rpm-ostree 도움말 페이지.

A.4. FDO 자동 온보딩 용어

FDO 용어에 대해 자세히 알아보십시오.

표 A.4. FDO 용어

명령설명

FDO

FIDO 장치 온보딩.

장치

모든 하드웨어, 장치 또는 컴퓨터

소유자

장치의 최종 소유자 - 회사 또는 IT 부서.

제조업체

장치 제조업체입니다.

제조업체 서버

장치의 장치 자격 증명을 만듭니다.

제조업체 클라이언트

제조 서버의 위치를 알려줍니다.

ownership Boucher (OV)

개별 장치의 소유권 레코드. 다음 정보를 포함합니다.

* 소유자 (fdo-owner-onboarding-service)

* rendezvous Server - FIDO 서버(fdo-rendezvous-server)

* 장치 (한 가지 조합) (fdo-manufacturing-service)

장치 인증 정보 (DC)

주요 인증 정보 및 rendezvous는 제조 장치에 저장됩니다.

제조 서버를 구성하는 키

* key_path

* cert_path

* key_type

* mfg_string_type: 장치 일련 번호

* allowed_key_storage_types: 파일 시스템 및 신뢰할 수 있는 플랫폼 모듈 (TPM)은 사용 중인 장치를 인증하는 데 사용되는 데이터를 보호합니다.

rendezvous 서버

장치 소유자가 누구인지 확인하기 위해 프로세스에서 사용하는 서버에 대한 링크

추가 리소스

A.5. FDO 자동 온보딩 기술

다음은 FDO 자동 온보딩에 사용되는 기술입니다.

표 A.5. ostree 및 rpm-ostree 용어

기술정의

UEFI

통합 확장 펌웨어 인터페이스.

RHEL

Red Hat® Enterprise Linux® 운영 체제

rpm-ostree

배경 이미지 기반 업그레이드.

Greenboot

rpm-ostree 에서 systemd의 Healthcheck 프레임워크입니다.

Osbuild

운영 체제 아티팩트를 위한 파이프라인 기반 빌드 시스템입니다.

컨테이너

Linux® 컨테이너는 나머지 시스템과 격리된 1개 이상의 프로세스 집합입니다.

coreos-installer

RHEL 이미지 설치를 지원하고 UEFI로 시스템을 부팅합니다.

FIDO FDO

구성 및 온보딩 장치를 프로비저닝하는 사양 프로토콜.