9.3. RHEL 이미지 빌더 CLI를 사용하여 시스템 이미지 생성
RHEL 이미지 빌더는 사용자 정의 시스템 이미지를 생성하는 툴입니다. RHEL 이미지 빌더를 제어하고 사용자 정의 시스템 이미지를 생성하려면 CLI(명령줄) 또는 웹 콘솔 인터페이스를 사용할 수 있습니다.
9.3.1. RHEL 이미지 빌더 명령줄 인터페이스 소개 링크 복사링크가 클립보드에 복사되었습니다!
RHEL 이미지 빌더 CLI(명령줄 인터페이스)를 사용하여 적절한 옵션 및 하위 명령으로 composer-cli 명령을 실행하여 블루프린트를 생성할 수 있습니다.
명령줄의 워크플로는 다음과 같이 요약할 수 있습니다.
- 기존 블루프린트 정의를 일반 텍스트 파일에 블루프린트 또는 내보내기(저장) 생성
- 텍스트 편집기에서 이 파일 편집
- 블루프린트 텍스트 파일을 다시 이미지 빌더로 가져오기
- 작성을 실행하여 블루프린트에서 이미지를 빌드합니다.
- 이미지 파일을 내보내서 다운로드합니다.
블루프린트를 생성하기 위한 기본 하위 명령 외에도 composer-cli 명령은 구성된 블루프린트의 상태를 검사하고 구성합니다.
9.3.2. RHEL 이미지 빌더를 루트가 아닌 사용자로 사용 링크 복사링크가 클립보드에 복사되었습니다!
composer-cli 명령을 root가 아닌 것으로 실행하려면 사용자가 weldr 그룹에 있어야 합니다.
사전 요구 사항
- 사용자를 생성했습니다.
절차
weldr또는root그룹에 사용자를 추가하려면 다음 명령을 실행하십시오.$ sudo usermod -a -G weldr user $ newgrp weldr
9.3.3. 명령줄을 사용하여 블루프린트 생성 링크 복사링크가 클립보드에 복사되었습니다!
RHEL 이미지 빌더 CLI(명령줄 인터페이스)를 사용하여 새 블루프린트를 생성할 수 있습니다. 청사진은 최종 이미지와 패키지 및 커널 사용자 지정과 같은 사용자 정의를 설명합니다.
사전 요구 사항
-
root 사용자 또는
weldr그룹의 멤버인 사용자로 로그인했습니다.
절차
다음 내용을 사용하여 일반 텍스트 파일을 생성합니다.
name = "BLUEPRINT-NAME" description = "LONG FORM DESCRIPTION TEXT" version = "0.0.1" modules = [] groups = []BLUEPRINT-NAME 및 LONG FORM DESCRIPTION TEXT 를 블루프린트의 이름 및 설명으로 바꿉니다.
0.0.1 을 Semantic Versioning 스키마에 따른 버전 번호로 바꿉니다.
블루프린트에 포함하려는 모든 패키지에 대해 파일에 다음 행을 추가합니다.
[[packages]] name = "package-name" version = "package-version"package-name 을
httpd,gdb-doc또는coreutils와 같은 패키지 이름으로 교체합니다.선택적으로 package-version 을 사용할 버전으로 교체합니다. 이 필드는
dnf버전 사양을 지원합니다.- 특정 버전의 경우 8.7.0 과 같은 정확한 버전 번호를 사용하십시오.
- 사용 가능한 최신 버전의 경우 별표 * 를 사용합니다.
- 최신 마이너 버전의 경우 8.*와 같은 형식을 사용하십시오.
필요에 맞게 청사진을 사용자 지정합니다. 예를 들어 SMT(Simultaneous Multi Threading)를 비활성화하여 CloudEvent 파일에 다음 행을 추가합니다.
[customizations.kernel] append = "nosmt=force"사용 가능한 추가 사용자 정의는 지원되는 이미지 사용자 지정을 참조하십시오.
[]및[[]]는 TOML로 표현되는 다양한 데이터 구조입니다.-
[customizations.kernel]헤더는 키 및 해당 값 쌍으로 정의된 단일 테이블을 나타냅니다(예:append = "nosmt=force"). -
[[packages]]헤더는 테이블 배열을 나타냅니다. 첫 번째 인스턴스는 배열과 첫 번째 테이블 요소(예:name = "package-name"및version = "package-version")를 정의하고 각 후속 인스턴스는 사용자가 정의한 순서대로 해당 배열에 새 테이블 요소를 생성하고 정의합니다.
-
- 예를 들어 파일을 BLUEPRINT-NAME.toml로 저장하고 텍스트 편집기를 종료합니다.
선택 사항: 블루프린트 TOML 파일의 모든 설정이 올바르게 구문 분석되었는지 확인합니다. 블루프린트를 저장하고 저장된 출력을 입력 파일과 비교합니다.
# composer-cli blueprints save BLUEPRINT-NAME.toml-
저장된
BLUEPRINT-NAME.toml를 입력 파일과 비교합니다.
-
저장된
블루프린트를 푸시합니다.
# composer-cli blueprints push BLUEPRINT-NAME.tomlBLUEPRINT-NAME 을 이전 단계에서 사용한 값으로 바꿉니다.
참고composer-cli를 사용하여 root가 아닌 이미지를 만들려면 사용자를weldr또는root그룹에 추가합니다.# usermod -a -G weldr user $ newgrp weldr
검증
기존 기능 목록을 나열하여 해당 기능이 푸시되고 있는지 확인합니다.
# composer-cli blueprints list방금 추가한 청사진 구성을 표시합니다.
# composer-cli blueprints show BLUEPRINT-NAME블루프린트 및 해당 종속 항목에 나열된 구성 요소 및 버전이 유효한지 확인합니다.
# composer-cli blueprints depsolve BLUEPRINT-NAMERHEL 이미지 빌더에서 사용자 정의 리포지토리에서 패키지의 종속 항목을 해결할 수 없는 경우
osbuild-composer캐시를 제거합니다.$ sudo rm -rf /var/cache/osbuild-composer/* $ sudo systemctl restart osbuild-composer
9.3.4. 명령줄을 사용하여 블루프린트 편집 링크 복사링크가 클립보드에 복사되었습니다!
예를 들어 새 패키지를 추가하거나 새 그룹을 정의하고 사용자 지정 이미지를 생성하기 위해 CLI(명령줄)에서 기존 블루프린트를 편집할 수 있습니다.
사전 요구 사항
- 블루프린트를 생성했습니다.
절차
기존 블루프린트를 나열합니다.
# composer-cli blueprints list블루프린트를 로컬 텍스트 파일에 저장합니다.
# composer-cli blueprints save BLUEPRINT-NAME- 텍스트 편집기로 BLUEPRINT-NAME.toml 파일을 편집하고 변경합니다.
편집을 완료하기 전에 파일이 유효한 청사진인지 확인합니다.
블루프린트에서 다음 행을 제거합니다.
packages = []- 버전 번호를 0.0.1에서 0.1.0으로 늘립니다. RHEL 이미지 빌더 블루프린트 버전에서는 Semantic Versioning 스키마를 사용해야 합니다. 또한 버전을 변경하지 않으면 패치 버전 구성 요소가 자동으로 증가합니다.
- 파일을 저장하고 텍스트 편집기를 종료합니다.
블루프린트를 RHEL 이미지 빌더로 다시 푸시합니다.
# composer-cli blueprints push BLUEPRINT-NAME.toml참고블루프린트를 RHEL 이미지 빌더로 다시 가져오려면
.toml확장을 포함한 파일 이름을 제공하고 다른 명령에서는 블루프린트 이름만 사용합니다.
검증
RHEL 이미지 빌더에 업로드된 콘텐츠가 편집 내용과 일치하는지 확인하려면 블루프린트 내용을 나열합니다.
# composer-cli blueprints show BLUEPRINT-NAME블루프린트 및 해당 종속 항목에 나열된 구성 요소 및 버전이 유효한지 확인합니다.
# composer-cli blueprints depsolve BLUEPRINT-NAME
9.3.5. 명령줄에서 RHEL 이미지 빌더를 사용하여 시스템 이미지 생성 링크 복사링크가 클립보드에 복사되었습니다!
RHEL 이미지 빌더 명령줄 인터페이스를 사용하여 사용자 지정 RHEL 이미지를 빌드할 수 있습니다. 이를 위해 블루프린트와 이미지 유형을 지정해야 합니다. 선택적으로 배포를 지정할 수도 있습니다. 배포를 지정하지 않으면 호스트 시스템과 동일한 배포 및 버전을 사용합니다. 아키텍처는 호스트의 아키텍처와 동일합니다.
사전 요구 사항
- 이미지에 대해 준비된 청사진이 있습니다. 명령줄을 사용하여 RHEL 이미지 빌더 블루프린트 생성을 참조하십시오.
절차
선택 사항: 생성할 수 있는 이미지 형식을 나열합니다.
# composer-cli compose types작성을 시작합니다.
# composer-cli compose start BLUEPRINT-NAME IMAGE-TYPEBLUEPRINT-NAME 을 블루프린트 이름으로 바꾸고, IMAGE-TYPE 을 이미지 유형으로 바꿉니다. 사용 가능한 값은
composer-cli compose types명령의 출력을 참조하십시오.compose 프로세스는 백그라운드에서 시작되고 composer Universally Unique Identifier (UUID)를 표시합니다.
이미지 생성을 완료하는 데 최대 10분이 걸릴 수 있습니다.
작성 상태를 확인하려면 다음을 수행합니다.
# composer-cli compose status완료된 작성에는 FINISHED 상태 값이 표시됩니다. 목록에서 Composer를 식별하려면 해당 UUID를 사용합니다.
작성 프로세스가 완료되면 결과 이미지 파일을 다운로드합니다.
# composer-cli compose image UUIDUUID 를 이전 단계에 표시된 UUID 값으로 바꿉니다.
검증
이미지를 생성한 후 다음 명령을 사용하여 이미지 생성 진행 상황을 확인할 수 있습니다.
이미지의 메타데이터를 다운로드하여 구성 요소에 대한 메타데이터의
.tar파일을 가져옵니다.$ sudo composer-cli compose metadata UUID이미지 로그를 다운로드합니다.
$ sudo composer-cli compose logs UUID이 명령은 이미지 생성을 위한 로그가 포함된
.tar파일을 생성합니다. 로그가 비어 있으면 저널을 확인할 수 있습니다.저널 확인:
$ journalctl | grep osbuild이미지 매니페스트를 확인합니다.
$ sudo cat /var/lib/osbuild-composer/jobs/job_UUID.jsonjournal에서 job_UUID.json을 찾을 수 있습니다.
9.3.6. 기본 RHEL 이미지 빌더 명령줄 명령 링크 복사링크가 클립보드에 복사되었습니다!
RHEL 이미지 빌더 명령줄 인터페이스는 다음 하위 명령을 제공합니다.
블루프린트 조작
- 사용 가능한 모든 블루프린트 나열
# composer-cli blueprints list- TOML 형식의 블루프린트 콘텐츠 표시
# composer-cli blueprints show <BLUEPRINT-NAME>- TOML 형식으로 블루프린트 내용을 파일 BLUEPRINT-NAME.todir에 저장합니다.
# composer-cli blueprints save <BLUEPRINT-NAME>- 블루프린트 제거
# composer-cli blueprints delete <BLUEPRINT-NAME>- TOML 형식의 블루프린트 파일을 RHEL 이미지 빌더로 푸시(가져오기)
# composer-cli blueprints push <BLUEPRINT-NAME>
블루프린트에서 이미지 구성
- 사용 가능한 이미지 유형 나열
# composer-cli compose types- 작성 시작
# composer-cli compose start <BLUEPRINT> <COMPOSE-TYPE>- 모든 작성 사항 나열
# composer-cli compose list- 모든 작성 및 해당 상태 나열
# composer-cli compose status- 실행 중인 작성 취소
# composer-cli compose cancel <COMPOSE-UUID>- 완료된 작성 삭제
# composer-cli compose delete <COMPOSE-UUID>- 작성에 대한 자세한 정보 표시
# composer-cli compose info <COMPOSE-UUID>- 작성 이미지 파일 다운로드
# composer-cli compose image <COMPOSE-UUID>- 더 많은 하위 명령 및 옵션 보기
# composer-cli help
9.3.7. RHEL 이미지 빌더 블루프린트 형식 링크 복사링크가 클립보드에 복사되었습니다!
RHEL 이미지 빌더 블루프린트는 TOML 형식의 일반 텍스트로 사용자에게 제공됩니다.
일반적인 청사진 파일의 요소는 다음과 같습니다.
- 블루프린트 메타데이터
name = "<BLUEPRINT-NAME>" description = "<LONG FORM DESCRIPTION TEXT>" version = "<VERSION>"BLUEPRINT-NAME 및 LOECDHE FORM DESCRIPTION TEXT 필드는 귀하의 청사진의 이름과 설명입니다.
VERSION 은 Semantic Versioning 스키마에 따른 버전 번호이며 전체 블루프린트 파일에 대해 한 번만 제공됩니다.
- 이미지에 포함할 그룹
[[groups]] name = "group-name"group 항목은 이미지에 설치할 패키지 그룹을 설명합니다. 그룹은 다음과 같은 패키지 범주를 사용합니다.
- 필수 항목
- Default
선택 사항
group-name 은 그룹의 이름입니다(예: anaconda-tools, 위젯, Clair 또는 사용자 ). templates는 필수 및 기본 패키지를 설치합니다. 옵션 패키지를 선택하는 메커니즘은 없습니다.
- 이미지에 포함할 패키지
[[packages]] name = "<package-name>" version = "<package-version>"package-name 은 httpd, gdb-doc 또는 coreutils 와 같은 패키지 이름입니다.
package-version 은 사용할 버전입니다. 이 필드는
dnf버전 사양을 지원합니다.- 특정 버전의 경우 8.7.0 과 같은 정확한 버전 번호를 사용하십시오.
- 사용 가능한 최신 버전의 경우 별표 * 를 사용합니다.
최신 마이너 버전의 경우 8과 같은 형식을 사용합니다.*
포함할 모든 패키지에 대해 이 블록을 반복합니다.
RHEL 이미지 빌더 툴의 패키지와 모듈 간에 차이가 없습니다. 둘 다 RPM 패키지 종속성으로 처리됩니다.
9.3.8. 지원되는 이미지 사용자 정의 링크 복사링크가 클립보드에 복사되었습니다!
다음과 같은 블루프린트에 사용자 지정을 추가하여 이미지를 사용자 지정할 수 있습니다.
- 추가 RPM 패키지 추가
- 서비스 활성화
- 커널 명령줄 매개 변수 사용자 정의.
다른 사람 사이입니다. sshd 내에서 여러 이미지 사용자 지정을 사용할 수 있습니다. 사용자 지정을 사용하면 기본 패키지에서 사용할 수 없는 이미지에 패키지 및 그룹을 추가할 수 있습니다. 이러한 옵션을 사용하려면 블루프린트에서 사용자 지정을 구성하고 RHEL 이미지 빌더로 가져오기(push)합니다.
9.3.8.1. 배포 선택 링크 복사링크가 클립보드에 복사되었습니다!
distro 필드를 사용하여 이미지를 구성하거나 블루프린트의 종속성을 해결할 때 사용할 배포를 지정할 수 있습니다. distro 필드를 비워 두면 블루프린트에서 호스트의 운영 체제 배포를 자동으로 사용합니다. 배포를 지정하지 않으면 블루프린트에서 호스트 배포를 사용합니다. 호스트 운영 체제를 업그레이드할 때 업그레이드된 운영 체제 버전을 사용하여 지정된 배포 빌드 이미지가 없는 블루프린트입니다.
최신 시스템에서 이전 주요 버전의 이미지를 빌드할 수 있습니다. 예를 들어 RHEL 10 호스트를 사용하여 RHEL 9 및 RHEL 8 이미지를 생성할 수 있습니다. 그러나 이전 시스템에서 최신 주요 버전의 이미지를 빌드할 수 없습니다.
RHEL 이미지 빌더 호스트와 다른 운영 체제 이미지를 빌드할 수 없습니다. 예를 들어 RHEL 시스템을 사용하여 Fedora 또는 CentOS 이미지를 빌드할 수 없습니다.
항상 지정된 RHEL 이미지를 빌드하도록 RHEL 배포를 사용하여 블루프린트를 사용자 지정합니다.
name = "blueprint_name" description = "blueprint_version" version = "0.1" distro = "different_minor_version"예를 들면 다음과 같습니다.
name = "tmux" description = "tmux image with openssh" version = "1.2.16" distro = "rhel-9.5"
"different_minor_version"을 교체하여 다른 마이너 버전을 빌드합니다. 예를 들어 RHEL 8.10 이미지를 빌드하려면 distro = "rhel-810"을 사용합니다. RHEL 8.10 이미지에서 RHEL 8.9 및 이전 릴리스와 같은 마이너 버전을 빌드할 수 있습니다.
9.3.8.2. 패키지 그룹 선택 링크 복사링크가 클립보드에 복사되었습니다!
패키지 그룹으로 블루프린트를 사용자 지정합니다. 그룹 목록은 이미지에 설치할 패키지 그룹을 설명합니다. 패키지 그룹은 리포지토리 메타데이터에 정의되어 있습니다. 각 그룹에는 주로 사용자 인터페이스에 표시하는 데 사용되는 설명적인 이름과 Kickstart 파일에서 일반적으로 사용되는 ID가 있습니다. 이 경우 ID를 사용하여 그룹을 나열해야 합니다. 그룹에는 필수, 기본값, 선택 사항 등 패키지를 분류하는 세 가지 방법이 있습니다. 필수 및 기본 패키지만 블루프린트에 설치됩니다. 선택적 패키지를 선택할 수 없습니다.
name 속성은 필수 문자열이며 리포지토리의 패키지 그룹 ID와 정확히 일치해야 합니다.
현재 osbuild-composer 의 패키지와 모듈 간에는 차이가 없습니다. 둘 다 RPM 패키지 종속성으로 취급됩니다.
패키지로 블루프린트를 사용자 지정합니다.
[[groups]] name = "group_name"group_name을 그룹 이름으로 교체합니다. 예:anaconda-tools:[[groups]] name = "anaconda-tools"
9.3.8.3. 컨테이너 포함 링크 복사링크가 클립보드에 복사되었습니다!
블루프린트를 사용자 지정하여 최신 RHEL 컨테이너를 포함할 수 있습니다. 컨테이너 목록에는 소스가 있는 오브젝트와 필요한 경우 tls-verify 속성이 포함되어 있습니다.
컨테이너 목록 항목은 이미지에 포함할 컨테이너 이미지를 설명합니다.
-
Source- 필수 필드입니다. 레지스트리의 컨테이너 이미지에 대한 참조입니다. 이 예에서는registry.access.redhat.com레지스트리를 사용합니다. 태그 버전을 지정할 수 있습니다. 기본 태그 버전은 latest입니다. -
name- 로컬 레지스트리에 있는 컨테이너의 이름입니다. -
tls-verify- 부울 필드. tls-verify 부울 필드는 전송 계층 보안을 제어합니다. 기본값은 true입니다.
포함된 컨테이너는 자동으로 시작되지 않습니다. 시작하려면 파일 사용자 지정이 포함된 systemd 장치 파일 또는 사각형을 만듭니다.
registry.access.redhat.com/ubi9/ubi:latest의 컨테이너와 호스트의 컨테이너를 포함하려면 블루프린트에 다음 사용자 지정을 추가합니다.[[containers]] source = "registry.access.redhat.com/ubi9/ubi:latest" name = "local-name" tls-verify = true [[containers]] source = "localhost/test:latest" local-storage = true
containers-auth.json 파일을 사용하여 보호된 컨테이너 리소스에 액세스할 수 있습니다. 컨테이너 레지스트리 인증 정보를 참조하십시오.
9.3.8.4. 이미지 호스트 이름 설정 링크 복사링크가 클립보드에 복사되었습니다!
customization .hostname 은 최종 이미지 호스트 이름을 구성하는 데 사용할 수 있는 선택적 문자열입니다. 이 사용자 지정은 선택 사항이며 설정하지 않으면 블루프린트에서 기본 호스트 이름을 사용합니다.
블루프린트를 사용자 지정하여 호스트 이름을 구성합니다.
[customizations] hostname = "baseimage"
9.3.8.5. 추가 사용자 지정 링크 복사링크가 클립보드에 복사되었습니다!
이미지에 사용자를 추가하고 선택적으로 SSH 키를 설정합니다. 이 섹션의 모든 필드는 이름을 제외하고 선택 사항입니다.
절차
이미지에 사용자를 추가하도록 블루프린트를 사용자 지정합니다.
[[customizations.user]] 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[[customizations.user]] name = "admin" description = "Administrator account" password = "$6$CHO2$3rN8eviE2t50lmVyBYihTgVRHcaecmeCk31L..." key = "PUBLIC SSH KEY" home = "/srv/widget/" shell = "/usr/bin/bash" groups = ["widget", "users", "wheel"] uid = 1200 gid = 1200 expiredate = 12345GID는 선택 사항이며 이미지에 이미 있어야 합니다. 선택적으로 패키지에서 이를 생성하거나,
[customizations.group]항목을 사용하여 GID를 생성합니다.PASSWORD-HASH 를 실제
암호 해시로 바꿉니다.암호 해시를 생성하려면 다음과 같은 명령을 사용합니다.$ python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'다른 자리 표시자를 적절한 값으로 바꿉니다.
name값을 입력하고 필요하지 않은 행을 생략합니다.모든 사용자가 포함할 이 블록을 반복합니다.
9.3.8.6. 추가 그룹 지정 링크 복사링크가 클립보드에 복사되었습니다!
결과 시스템 이미지에 대한 그룹을 지정합니다. name 및 gid 속성은 모두 필수입니다.
그룹으로 블루프린트를 사용자 지정합니다.
[[customizations.group]] name = "GROUP-NAME" gid = NUMBER모든 그룹이 포함할 이 블록을 반복합니다. 예를 들면 다음과 같습니다.
[[customizations.group]] name = "widget" gid = 1130
9.3.8.7. 기존 사용자를 위한 SSH 키 설정 링크 복사링크가 클립보드에 복사되었습니다!
custom .sshkey 를 사용하여 최종 이미지에 있는 기존 사용자의 SSH 키를 설정할 수 있습니다. 사용자 및 키 속성은 모두 필수입니다.
기존 사용자의 SSH 키를 설정하여 블루프린트를 사용자 지정합니다.
[[customizations.sshkey]] user = "root" key = "PUBLIC-SSH-KEY"예를 들면 다음과 같습니다.
[[customizations.sshkey]] user = "root" key = "SSH key for root"참고기존 사용자에 대한 customization
.sshkey 사용자지정만 구성할 수 있습니다. 사용자를 생성하고 SSH 키를 설정하려면 추가 사용자 사용자 지정을 참조하십시오.
9.3.8.8. 커널 인수 추가 링크 복사링크가 클립보드에 복사되었습니다!
부트 로더 커널 명령줄에 인수를 추가할 수 있습니다. 기본적으로 RHEL 이미지 빌더는 기본 커널을 이미지에 빌드합니다. 그러나 블루프린트에서 커널을 구성하여 커널을 사용자 지정할 수 있습니다.
커널 부팅 매개변수 옵션을 기본값에 추가합니다.
[customizations.kernel] append = "KERNEL-OPTION"예를 들면 다음과 같습니다.
[customizations.kernel] name = "kernel-debug" append = "nosmt=force"
9.3.8.9. 실시간 커널을 사용하여 RHEL 이미지 빌드 링크 복사링크가 클립보드에 복사되었습니다!
실시간 커널(kernel-rt)을 사용하여 RHEL 이미지를 빌드하려면 리포지토리를 재정의해야 kernel-rt 가 기본 커널로 올바르게 선택되는 이미지를 빌드할 수 있습니다. /usr/share/osbuild-composer/repositories/ 디렉터리의 .json 을 사용합니다. 그런 다음 시스템에 빌드한 이미지를 배포하고 실시간 커널 기능을 사용할 수 있습니다.
실시간 커널은 Red Hat Enterprise Linux 실행을 위해 인증된 AMD64 및 Intel 64 서버 플랫폼에서 실행됩니다.
사전 요구 사항
- 시스템이 등록되고 RHEL이 RHEL for Real Time 서브스크립션에 연결되어 있습니다. dnf를 사용하여 실시간 RHEL 설치를 참조하십시오.
절차
다음 디렉터리를 생성합니다.
# mkdir /etc/osbuild-composer/repositories//usr/share/osbuild-composer/repositories/rhel-8.버전.json파일의 내용을 새 디렉터리로 복사합니다.# cp /usr/share/osbuild-composer/repositories/rhel-8.version.json /etc/osbuild-composer/repositoriesRT 커널 리포지터리를 포함하도록
/etc/osbuild-composer/repositories/rhel-8.버전.json파일을 편집합니다.# grep -C 6 kernel-rt /etc/osbuild-composer/repositories/rhel-8.version.json "baseurl": "https://cdn.redhat.com/content/dist/rhel8/8.version/x86_64/appstream/os", "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nm………..=\n=UZd/\n-----END PGP PUBLIC KEY BLOCK-----\n", "rhsm": true, "check_gpg": true }, { "name": "kernel-rt", "baseurl": "https://cdn.redhat.com/content/dist/rhel8/8.version/x86_64/rt/os", "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBEr………fg==\n=UZd/\n-----END PGP PUBLIC KEY BLOCK-----\n", "rhsm": true, "check_gpg": true },서비스를 다시 시작하십시오.
# systemctl restart osbuild-composerkernel-rt가.json파일에 포함되어 있는지 확인합니다.# composer-cli sources list # composer-cli sources info kernel-rt이전에 구성한 URL이 표시됩니다.
블루프린트를 생성합니다. 블루프린트에서 "[customizations.kernel]" 사용자 지정을 추가합니다. 다음은 블루프린트에 "[customizations.kernel]"을 포함하는 예입니다.
name = "rt-kernel-image" description = "" version = "2.0.0" modules = [] groups = [] distro = "rhel-8_version_" [[customizations.user]] name = "admin" password = "admin" groups = ["users", "wheel"] [customizations.kernel] name = "kernel-rt" append = ""블루프린트를 서버로 푸시합니다.
# composer-cli blueprints push rt-kernel-image.toml생성한 블루프린트에서 이미지를 빌드합니다. 다음 예제에서는 (
.qcow2) 이미지를 빌드합니다.# composer-cli compose start rt-kernel-image qcow2- 실시간 커널 기능을 사용하려는 시스템에 빌드한 이미지를 배포합니다.
검증
이미지에서 VM을 부팅한 후 이미지가 기본
커널로올바르게 선택되었는지 확인합니다.$ cat /proc/cmdline BOOT_IMAGE=(hd0,got3)/vmlinuz-5.14.0-362.24.1..el8_version_.x86_64+rt...
9.3.8.10. 시간대 및 NTP 설정 링크 복사링크가 클립보드에 복사되었습니다!
블루프린트를 사용자 지정하여 시간대 및 NTP( Network Time Protocol )를 구성할 수 있습니다. timezone 및 ntpservers 속성은 모두 선택적 문자열입니다. 시간대를 사용자 지정하지 않으면 시스템은 UTC( Universal Time, Coordinated )를 사용합니다. NTP 서버를 설정하지 않으면 시스템은 기본 배포를 사용합니다.
시간대및 원하는ntpservers로 블루프린트를 사용자 지정합니다.[customizations.timezone] timezone = "TIMEZONE" ntpservers = "NTP_SERVER"예를 들면 다음과 같습니다.
[customizations.timezone] timezone = "US/Eastern" ntpservers = ["0.north-america.pool.ntp.org", "1.north-america.pool.ntp.org"]참고Google Cloud와 같은 일부 이미지 유형에는 이미 NTP 서버가 설정되어 있습니다. 이미지에 선택한 환경에서 NTP 서버를 부팅해야 하므로 재정의할 수 없습니다. 그러나 블루프린트에서 시간대를 사용자 지정할 수 있습니다.
9.3.8.11. 로케일 설정 사용자 정의 링크 복사링크가 클립보드에 복사되었습니다!
결과 시스템 이미지에 대한 로케일 설정을 사용자 지정할 수 있습니다. 언어 및 키보드 속성은 모두 필수입니다. 다른 많은 언어를 추가할 수 있습니다. 첫 번째 언어는 기본 언어이며 다른 언어는 보조 언어입니다.
절차
로케일 설정을 설정합니다.
[customizations.locale] languages = ["LANGUAGE"] keyboard = "KEYBOARD"예를 들면 다음과 같습니다.
[customizations.locale] languages = ["en_US.UTF-8"] keyboard = "us"언어에서 지원하는 값을 나열하려면 다음 명령을 실행합니다.
$ localectl list-locales키보드에서 지원하는 값을 나열하려면 다음 명령을 실행합니다.
$ localectl list-keymaps
9.3.8.12. 방화벽 사용자 정의 링크 복사링크가 클립보드에 복사되었습니다!
결과 시스템 이미지에 대한 방화벽을 설정합니다. 기본적으로 방화벽은 sshd 와 같이 포트를 명시적으로 활성화하는 서비스를 제외하고 들어오는 연결을 차단합니다.
[customizations.firewall] 또는 [customizations.firewall.services] 를 사용하지 않으려는 경우 속성을 제거하거나 빈 목록 []으로 설정합니다. 기본 방화벽 설정만 사용하려는 경우 블루프린트에서 사용자 지정을 생략할 수 있습니다.
Google 및 OpenStack 템플릿은 해당 환경의 방화벽을 명시적으로 비활성화합니다. 블루프린트를 설정하여 이 동작을 재정의할 수 없습니다.
절차
다음 설정으로 블루프린트를 사용자 지정하여 다른 포트 및 서비스를 엽니다.
[customizations.firewall] ports = ["PORTS"]여기서 port는 열 포트 또는 포트 및 프로토콜 범위를 포함하는 선택적 문자열 목록입니다.
port:protocol형식을 사용하여 포트를 구성할 수 있습니다.portA-portB:protocol형식을 사용하여 포트 범위를 구성할 수 있습니다. 예를 들면 다음과 같습니다.[customizations.firewall] ports = ["22:tcp", "80:tcp", "imap:tcp", "53:tcp", "53:udp", "30000-32767:tcp", "30000-32767:udp"]숫자 포트 또는
/etc/services의 해당 이름을 사용하여 포트 목록을 활성화하거나 비활성화할 수 있습니다.customization
.firewall.service 섹션에서 활성화 또는 비활성화할 방화벽 서비스를 지정합니다.[customizations.firewall.services] enabled = ["SERVICES"] disabled = ["SERVICES"]사용 가능한 방화벽 서비스를 확인할 수 있습니다.
$ firewall-cmd --get-services예를 들면 다음과 같습니다.
[customizations.firewall.services] enabled = ["ftp", "ntp", "dhcp"] disabled = ["telnet"]참고firewall.services에 나열된 서비스는/etc/services파일에서 사용할 수 있는 서비스이름과다릅니다.
9.3.8.13. 서비스 활성화 또는 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
부팅 시 활성화할 서비스를 제어할 수 있습니다. 일부 이미지 유형에는 이미지가 올바르게 작동하고 이 설정을 재정의할 수 없도록 서비스가 이미 활성화되어 있거나 비활성화되어 있습니다. 블루프린트의 [customizations.services] 설정은 이러한 서비스를 대체하지 않고 이미지 템플릿에 이미 있는 서비스 목록에 서비스를 추가합니다.
부팅 시 활성화할 서비스를 사용자 지정합니다.
[customizations.services] enabled = ["SERVICES"] disabled = ["SERVICES"]예를 들면 다음과 같습니다.
[customizations.services] enabled = ["sshd", "cockpit.socket", "httpd"] disabled = ["postfix", "telnetd"]
9.3.8.14. ISO 이미지에 Kickstart 파일 삽입 링크 복사링크가 클립보드에 복사되었습니다!
[customization.installer] 블루프린트 사용자 지정을 사용하여 이미지 설치 프로그램 또는 빌드에 고유한 Kickstart 파일을 추가하고 베어 메탈 배포를 위한 ISO 이미지를 빌드할 때 유연성을 높일 수 있습니다.
에지 설치 프로그램과 같은 ISO 설치 프로그램
Kickstart는 시스템의 첫 번째 디스크를 자동으로 다시 포맷하도록 구성되므로 기존 운영 체제 또는 데이터를 사용하여 시스템에서 ISO를 부팅하는 것은 안전하지 않을 수 있습니다.
다음 옵션을 선택하여 고유한 Kickstart 파일을 추가할 수 있습니다.
- 설치 프로세스 중에 모든 값을 설정합니다.
-
Kickstart에서
unattended = true필드를 활성화하고 기본값으로 완전히 무인 설치를 가져옵니다. - Kickstart 필드를 사용하여 자체 Kickstart 삽입. 이렇게 하면 모든 필수 필드를 지정하거나 설치 관리자가 누락될 수 있는 일부 필드를 묻는 경우 완전히 무인 설치가 발생할 수 있습니다.
Anaconda 설치 프로그램 ISO 이미지 유형은 다음 블루프린트 사용자 지정을 지원합니다.
[customizations.installer]
unattended = true
sudo-nopasswd = ["user", "%wheel"]
무인: 설치를 완전히 자동으로 만드는 Kickstart 파일을 만듭니다. 여기에는 기본적으로 다음 옵션 설정이 포함됩니다.
- 텍스트 표시 모드
- en_US.UTF-8 언어/로컬
- us keyboard layout
- UTC 시간대
- zerombr, clearpart, autopart를 입력하여 첫 번째 디스크를 자동으로 지우고 파티션합니다.
- dhcp 및 auto-activation을 활성화하는 네트워크 옵션
다음은 예제입니다.
liveimg --url file:///run/install/<_repo_>/liveimg.tar.gz
lang en_US.UTF-8
keyboard us
timezone UTC
zerombr
clearpart --all --initlabel
text
autopart --type=plain --fstype=xfs --nohome
reboot --eject
network --device=link --bootproto=dhcp --onboot=on --activate
sudo-nopasswd: 설치 후 /etc/sudoers.d 에 드롭인 파일을 생성하여 지정된 사용자 및 그룹이 암호 없이 sudo를 실행할 수 있도록 Kickstart 파일에 스니펫을 추가합니다. 그룹 앞에 % 를 붙여야 합니다. 예를 들어 값을 ["user"로 설정하면 "%wheel"] 에서 다음 Kickstart %post 섹션이 생성됩니다.
%post
echo -e "user\tALL=(ALL)\tNOPASSWD: ALL" > "/etc/sudoers.d/user"
chmod 0440 /etc/sudoers.d/user
echo -e "%wheel\tALL=(ALL)\tNOPASSWD: ALL" > "/etc/sudoers.d/%wheel"
chmod 0440 /etc/sudoers.d/%wheel
restorecon -rvF /etc/sudoers.d
%end
설치 프로그램 Kickstart
또는 다음 사용자 지정을 사용하여 사용자 지정 Kickstart를 포함할 수 있습니다.
[customizations.installer.kickstart]
contents = """
text --non-interactive
zerombr
clearpart --all --initlabel --disklabel=gpt
autopart --noswap --type=lvm
network --bootproto=dhcp --device=link --activate --onboot=on
"""
osbuild-composer 는 image-installer 또는 edge-installer 이미지 유형과 관련된 경우 system: liveimg 또는 ostreesetup 을 설치하는 명령을 자동으로 추가합니다. 다른 설치 프로그램 사용자 정의와 함께 [customizations.installer.kickstart] 사용자 지정을 사용할 수 없습니다.
9.3.8.15. 파티션 모드 지정 링크 복사링크가 클립보드에 복사되었습니다!
partitioning_mode 변수를 사용하여 빌드 중인 디스크 이미지를 파티션하는 방법을 선택합니다. 다음과 같은 지원되는 모드로 이미지를 사용자 지정할 수 있습니다.
-
auto-lvm: 하나 이상의 파일 시스템 사용자 지정이 없는 경우 원시 파티션 모드를 사용합니다. 이 경우 LVM 파티션 모드를 사용합니다. -
lvm: 추가 마운트 지점이 없는 경우에도 LVM 파티션 모드를 사용합니다. -
Raw: 마운트 지점이 하나 이상 있는 경우에도 원시 파티션을 사용합니다. 다음 사용자 지정을 사용하여
partitioning_mode변수로 블루프린트를 사용자 지정할 수 있습니다.[customizations] partitioning_mode = "lvm"
9.3.8.16. 사용자 정의 파일 시스템 구성 지정 링크 복사링크가 클립보드에 복사되었습니다!
블루프린트에서 사용자 지정 파일 시스템 구성을 지정하고 기본 레이아웃 구성 대신 특정 디스크 레이아웃으로 이미지를 생성할 수 있습니다. 블루프린트에서 기본이 아닌 레이아웃 구성을 사용하면 다음과 같은 이점을 얻을 수 있습니다.
- 보안 벤치마크 준수
- 디스크 부족 오류로부터 보호
- 성능 개선
- 기존 설정과의 일관성
OSTree 이미지에는 읽기 전용과 같은 자체 마운트 규칙이 있으므로 OSTree 시스템은 파일 시스템 사용자 정의를 지원하지 않습니다. 다음 이미지 유형은 지원되지 않습니다.
-
image-installer -
edge-installer -
edge-simplified-installer
또한 이러한 이미지 유형은 분할된 운영 체제 이미지를 생성하지 않으므로 다음 이미지 유형에서는 파일 시스템 사용자 정의를 지원하지 않습니다.
-
edge-commit -
edge-container -
tar -
container
그러나 다음 이미지 유형에서는 파일 시스템 사용자 지정을 지원합니다.
-
simplified-installer -
edge-raw-image -
edge-ami -
edge-vsphere
OSTree 시스템에 대한 몇 가지 추가 예외를 제외하고 파일 시스템의 /root 수준에서 임의의 디렉터리 이름을 선택할 수 있습니다(예: '/local',' /mypartition', /$ CryostatITION ). 논리 볼륨에서 이러한 변경 사항은 LVM 파티션 시스템에서 수행됩니다. 다음 디렉터리는 별도의 논리 볼륨에서 /var,' /var/log' 및 /var/lib/containers 가 지원됩니다. root 수준에서 예외는 다음과 같습니다.
- "/home": {Deny: true},
- "/mnt": {Deny: true},
- "/opt": {Deny: true},
- "/ostree": {Deny: true},
- "/root": {Deny: true},
- "/srv": {Deny: true},
- "/var/home": {Deny: true},
- "/var/mnt": {Deny: true},
- "/var/opt": {Deny: true},
- "/var/roothome": {Deny: true},
- "/var/srv": {Deny: true},
- "/var/usrlocal": {Deny: true},
RHEL 8.10 및 9.5 이전의 릴리스 배포의 경우 블루프린트는 다음 마운트 지점 및 해당 하위 디렉터리를 지원합니다.
-
/- 루트 마운트 지점 -
/var -
/home -
/opt -
/srv -
/usr -
/app -
/data -
/tmp
RHEL 9.5 및 8.10 릴리스 이후 릴리스 배포에서는 운영 체제용으로 예약된 특정 경로를 제외하고 임의의 사용자 지정 마운트 지점을 지정할 수 있습니다.
다음 마운트 지점 및 해당 하위 디렉터리에 임의의 사용자 지정 마운트 지점을 지정할 수 없습니다.
-
/bin -
/boot/efi -
/dev -
/etc -
/lib -
/lib64 -
/lost+found -
/proc -
/run -
/sbin -
/sys -
/sysroot -
/var/lock -
/var/run
/usr 사용자 지정 마운트 지점의 블루프린트에서 파일 시스템을 사용자 지정할 수 있지만 하위 디렉터리는 허용되지 않습니다.
마운트 지점 사용자 지정은 CLI를 사용하여 RHEL 8.5 이후에만 지원됩니다. 이전 배포에서는 루트 파티션을 마운트 지점으로만 지정하고 size 인수를 이미지 크기의 별칭으로 지정할 수 있습니다. RHEL 8.6부터 osbuild-composer-46.1-1.el8 RPM 및 이후 버전의 경우 물리적 파티션을 더 이상 사용할 수 없으며 파일 시스템 사용자 지정으로 논리 볼륨을 생성합니다.
사용자 지정된 이미지에 두 개 이상의 파티션이 있는 경우 LVM에 사용자 지정된 파일 시스템 파티션을 사용하여 이미지를 만들고 런타임 시 해당 파티션의 크기를 조정할 수 있습니다. 이렇게 하려면 블루프린트에서 사용자 지정 파일 시스템 구성을 지정하고 필요한 디스크 레이아웃을 사용하여 이미지를 생성할 수 있습니다. 기본 파일 시스템 레이아웃은 변경되지 않은 상태로 유지됩니다. 파일 시스템 사용자 지정 없이 일반 이미지를 사용하고 cloud-init 는 루트 파티션의 크기를 조정합니다.
블루프린트는 파일 시스템 사용자 지정을 LVM 파티션으로 자동 변환합니다.
사용자 지정 파일 블루프린트 사용자 지정을 사용하여 새 파일을 생성하거나 기존 파일을 교체할 수 있습니다. 지정한 파일의 상위 디렉터리가 있어야 합니다. 그렇지 않으면 이미지 빌드가 실패합니다. [customizations.directories] 사용자 지정에 상위 디렉터리가 있는지 확인합니다.
파일 사용자 정의를 다른 블루프린트 사용자 정의와 결합하면 다른 사용자 정의 기능에 영향을 주거나 현재 파일 사용자 정의를 재정의할 수 있습니다.
9.3.8.16.1. 블루프린트에 사용자 지정 파일 지정 링크 복사링크가 클립보드에 복사되었습니다!
[customizations.files] 블루프린트 사용자 지정을 사용하면 다음을 수행할 수 있습니다.
- 새 텍스트 파일을 생성합니다.
- 기존 파일 수정. 경고: 기존 콘텐츠를 덮어쓸 수 있습니다.
- 생성 중인 파일에 대한 사용자 및 그룹 소유권을 설정합니다.
- 8진수 형식으로 모드 권한을 설정합니다.
다음 파일을 생성하거나 교체할 수 없습니다.
-
/etc/fstab -
/etc/shadow -
/etc/passwd -
/etc/group
[customizations.files] 및 및 디렉터리를 생성할 수 있습니다. 이러한 사용자 지정은 [[customizations.directories]] 블루프린트 사용자 지정을 사용하여 이미지에 사용자 지정 파일/etc 디렉토리에서만 사용할 수 있습니다.
이러한 블루프린트 사용자 정의는 edge-raw-image,edge-installer, edge-simplified-installer 와 같은 OSTree 커밋을 배포하는 이미지 유형을 제외하고 모든 이미지 유형에서 지원됩니다.
이미 설정된 모드,사용자 또는 그룹이 설정된 이미지에 이미 존재하는 디렉터리 경로에 custom .directories 를 사용하는 경우 이미지 빌드에서 기존 디렉터리의 소유권 또는 권한을 변경하지 못합니다.
9.3.8.16.2. 블루프린트에 사용자 지정 디렉터리 지정 링크 복사링크가 클립보드에 복사되었습니다!
[customizations.directories] 블루프린트 사용자 지정을 사용하면 다음을 수행할 수 있습니다.
- 새 디렉토리를 만듭니다.
- 생성 중인 디렉터리에 대한 사용자 및 그룹 소유권을 설정합니다.
- 8진수 형식으로 디렉터리 모드 권한을 설정합니다.
- 필요에 따라 상위 디렉터리가 생성되었는지 확인합니다.
[customizations.files] 블루프린트 사용자 지정을 사용하면 다음을 수행할 수 있습니다.
- 새 텍스트 파일을 생성합니다.
- 기존 파일 수정. 경고: 기존 콘텐츠를 덮어쓸 수 있습니다.
- 생성 중인 파일에 대한 사용자 및 그룹 소유권을 설정합니다.
- 8진수 형식으로 모드 권한을 설정합니다.
다음 파일을 생성하거나 교체할 수 없습니다.
-
/etc/fstab -
/etc/shadow -
/etc/passwd -
/etc/group
다음 사용자 지정을 사용할 수 있습니다.
블루프린트에서 파일 시스템 구성을 사용자 지정합니다.
[[customizations.filesystem]] mountpoint = "MOUNTPOINT" minsize = MINIMUM-PARTITION-SIZEMi
NIMUM-PARTITION-SIZE값은 기본 크기 형식이 없습니다. 사용자 지정은 kB에서 TB까지, KiB~TiB의 값 및 단위를 지원합니다. 예를 들어 마운트 지점 크기를 바이트 단위로 정의할 수 있습니다.[[customizations.filesystem]] mountpoint = "/var" minsize = 1073741824단위를 사용하여 마운트 지점 크기를 정의합니다. 예를 들면 다음과 같습니다.
[[customizations.filesystem]] mountpoint = "/opt" minsize = "20 GiB"[[customizations.filesystem]] mountpoint = "/boot" minsize = "1 GiB"minsize를 설정하여 최소 파티션을 정의합니다. 예를 들면 다음과 같습니다.[[customizations.filesystem]] mountpoint = "/var" minsize = 2147483648[customizations.directories] :을 사용하여 이미지의/etc디렉터리에 사용자 지정 디렉토리를 만듭니다.[[customizations.directories]] path = "/etc/directory_name" mode = "octal_access_permission" user = "user_string_or_integer" group = "group_string_or_integer" ensure_parents = boolean블루프린트 항목은 다음과 같이 설명되어 있습니다.
-
경로- 필수 - 생성하려는 디렉터리의 경로를 입력합니다./etc디렉토리 아래의 절대 경로여야 합니다. -
mode- 선택 사항 - 디렉터리에 대한 액세스 권한을 8진수 형식으로 설정합니다. 권한을 지정하지 않으면 기본값은 0755입니다. 앞에 0은 선택 사항입니다. -
user- 선택 사항 - 사용자를 디렉터리의 소유자로 설정합니다. 사용자를 지정하지 않으면 기본값은root입니다. 사용자를 문자열 또는 정수로 지정할 수 있습니다. -
group- 선택 사항 - 그룹을 디렉터리의 소유자로 설정합니다. 그룹을 지정하지 않으면 기본값은root입니다. 그룹을 문자열 또는 정수로 지정할 수 있습니다. -
ensure_parents- 선택 사항 - 필요에 따라 상위 디렉터리를 생성할지 여부를 지정합니다. 값을 지정하지 않으면 기본값은false입니다.
-
[customizations.directories] :을 사용하여 이미지의/etc디렉터리에 사용자 지정 파일을 만듭니다.[[customizations.files]] path = "/etc/directory_name" mode = "octal_access_permission" user = "user_string_or_integer" group = "group_string_or_integer" data = "Hello world!"블루프린트 항목은 다음과 같이 설명되어 있습니다.
-
path- Mandatory - 생성하려는 파일의 경로를 입력합니다./etc디렉토리 아래의 절대 경로여야 합니다. -
modeOptional - 8진수 형식으로 파일에 대한 액세스 권한을 설정합니다. 권한을 지정하지 않으면 기본값은 0644입니다. 앞에 0은 선택 사항입니다. -
user- Optional - 사용자를 파일의 소유자로 설정합니다. 사용자를 지정하지 않으면 기본값은root입니다. 사용자를 문자열 또는 정수로 지정할 수 있습니다. -
group- 선택 사항 - 그룹을 파일의 소유자로 설정합니다. 그룹을 지정하지 않으면 기본값은root입니다. 그룹을 문자열 또는 정수로 지정할 수 있습니다. -
data- 선택 사항 - 일반 텍스트 파일의 내용을 지정합니다. 콘텐츠를 지정하지 않으면 빈 파일이 생성됩니다.
-
9.3.8.17. 블루프린트에서 볼륨 그룹 및 논리 볼륨 이름 지정 링크 복사링크가 클립보드에 복사되었습니다!
다음 작업에 RHEL 이미지 빌더를 사용할 수 있습니다.
-
고급 파티션 레이아웃을 사용하여 RHEL 디스크 이미지를 생성합니다. 사용자 지정 마운트 지점, LVM 기반 파티션 및 LVM 기반 SWAP를 사용하여 디스크 이미지를 생성할 수 있습니다. 예를 들어
config.toml파일을 사용하여/및/boot디렉터리의 크기를 변경합니다. -
사용할 파일 시스템을 선택합니다.
ext4와xfs중에서 선택할 수 있습니다. - 스왑 파티션 및 LV를 추가합니다. 디스크 이미지에는 LV 기반 SWAP가 포함될 수 있습니다.
- LVM 엔터티의 이름을 변경합니다. 이미지 내의 논리 볼륨(LV) 및 볼륨 그룹(VG)에는 사용자 지정 이름이 있을 수 있습니다.
다음 옵션은 지원되지 않습니다.
- 하나의 이미지에 여러 PV 또는 VG가 있습니다.
- SWAP 파일
-
/dev/shm,/tmp와 같은 비 물리적 파티션의 마운트 옵션.
예제: 파일 시스템이 있는 VG 및 LG 사용자 지정 이름을 추가합니다.
[[customizations.disk.partitions]]
type = "plain"
label = "data"
mountpoint = "/data"
fs_type = "ext4"
minsize = "50 GiB"
[[customizations.disk.partitions]]
type = "lvm"
name = "mainvg"
minsize = "20 GiB"
[[customizations.disk.partitions.logical_volumes]]
name = "rootlv"
mountpoint = "/"
label = "root"
fs_type = "ext4"
minsize = "2 GiB"
[[customizations.disk.partitions.logical_volumes]]
name = "homelv"
mountpoint = "/home"
label = "home"
fs_type = "ext4"
minsize = "2 GiB"
[[customizations.disk.partitions.logical_volumes]]
name = "swaplv"
fs_type = "swap"
minsize = "1 GiB"
9.3.9. RHEL 이미지 빌더에서 설치한 패키지 링크 복사링크가 클립보드에 복사되었습니다!
RHEL 이미지 빌더를 사용하여 시스템 이미지를 생성할 때 시스템은 기본 패키지 그룹 세트를 설치합니다.
청사진에 추가 구성 요소를 추가할 때 추가한 구성 요소의 패키지가 다른 패키지 구성 요소와 충돌하지 않는지 확인합니다. 그렇지 않으면 시스템이 종속성을 해결하지 못하고 사용자 지정된 이미지를 생성하지 못합니다. 다음 명령을 실행하여 패키지 간에 충돌이 없는지 확인할 수 있습니다.
# composer-cli blueprints depsolve BLUEPRINT-NAME
기본적으로 RHEL 이미지 빌더에서는 Core 그룹을 기본 패키지 목록으로 사용합니다.
| 이미지 유형 | 기본 패키지 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9.3.10. 사용자 정의 이미지에서 서비스 활성화 링크 복사링크가 클립보드에 복사되었습니다!
이미지 빌더를 사용하여 사용자 정의 이미지를 구성할 때 이미지에 사용되는 기본 서비스는 다음 사항에 따라 결정됩니다.
-
osbuild-composer유틸리티를 사용하는 RHEL 릴리스 - 이미지 유형
예를 들어 ami 이미지 유형을 사용하면 기본적으로 sshd,chronyd, cloud-init 서비스를 활성화합니다. 이러한 서비스가 활성화되지 않으면 사용자 정의 이미지가 부팅되지 않습니다.
| 이미지 유형 | 기본 활성화된 서비스 |
|---|---|
|
| sshd, cloud-init, cloud-init-local, cloud-config, cloud-final |
|
| sshd, cloud-init, cloud-init-local, cloud-config, cloud-final |
|
| cloud-init |
|
| 추가 서비스는 기본적으로 활성화되어 있지 않습니다. |
|
| 추가 서비스는 기본적으로 활성화되어 있지 않습니다. |
|
| sshd, chronyd, waagent, cloud-init, cloud-init-local, cloud-config, cloud-final |
|
| sshd, chronyd, vmtoolsd, cloud-init |
참고: 시스템을 부팅하는 동안 활성화할 서비스를 사용자 지정할 수 있습니다. 그러나 사용자 지정은 언급된 이미지 유형에 대해 기본적으로 활성화된 서비스를 재정의하지 않습니다.