사용자 지정 RHEL 시스템 이미지 구성
RHEL 10.0에서 RHEL 이미지 빌더를 사용하여 사용자 지정 시스템 이미지 생성
초록
Red Hat 문서에 관한 피드백 제공
문서 개선을 위한 의견에 감사드립니다. 어떻게 개선할 수 있는지 알려주십시오.
Jira를 통해 피드백 제출 (계정 필요)
- Jira 웹 사이트에 로그인합니다.
- 상단 탐색 바에서 생성을 클릭합니다.
- 요약 필드에 설명 제목을 입력합니다.
- 설명 필드에 개선을 위한 제안을 입력합니다. 문서의 관련 부분에 대한 링크를 포함합니다.
- 대화 상자 하단에서 생성 을 클릭합니다.
1장. RHEL 이미지 빌더 설명
시스템을 배포하려면 시스템 이미지를 생성합니다. RHEL 시스템 이미지를 생성하려면 RHEL 이미지 빌더 툴을 사용합니다. RHEL 이미지 빌더를 사용하여 클라우드 플랫폼에 배포할 수 있는 시스템 이미지를 포함하여 Red Hat Enterprise Linux의 사용자 지정 시스템 이미지를 생성할 수 있습니다. RHEL 이미지 빌더는 각 출력 유형에 대한 설정 세부 정보를 자동으로 처리하므로 이미지 생성 방법보다 사용하기 쉽고 빠르게 작업할 수 있습니다. composer-cli
툴의 명령줄 또는 RHEL 웹 콘솔에서 그래픽 사용자 인터페이스를 사용하여 RHEL 이미지 빌더 기능에 액세스할 수 있습니다.
1.1. RHEL 이미지 빌더 용어
RHEL 이미지 빌더에서는 다음 개념을 사용합니다.
- 블루프린트
블루프린트는 사용자 지정 시스템 이미지에 대한 설명입니다. 시스템에 포함될 패키지 및 사용자 지정이 나열됩니다. 사용자 지정으로 블루프린트를 편집하고 특정 버전으로 저장할 수 있습니다. 블루프린트에서 시스템 이미지를 생성하면 이미지가 RHEL 이미지 빌더 인터페이스의 블루프린트와 연결됩니다.
TOML 형식으로 블루프린트를 생성합니다.
- 작성
- 작성은 특정 블루프린트의 특정 버전을 기반으로 하는 시스템 이미지의 개별 빌드입니다. 용어로 구성되는 용어는 시스템 이미지, 생성의 로그, 입력, 메타데이터 및 프로세스 자체를 나타냅니다.
- 사용자 정의
- 사용자 지정은 패키지가 아닌 이미지의 사양입니다. 여기에는 사용자, 그룹 및 SSH 키가 포함됩니다.
1.2. RHEL 이미지 빌더 출력 형식
RHEL 이미지 빌더는 다음 표에 표시된 여러 출력 형식으로 이미지를 생성할 수 있습니다.
설명 | CLI 이름 | 파일 확장자 |
---|---|---|
QEMU Image |
|
|
디스크 아카이브 |
|
|
Amazon Web Services |
|
|
Microsoft Azure |
|
|
Google Cloud Platform |
|
|
VMware vSphere |
|
|
VMware vSphere |
|
|
OpenStack |
|
|
RHEL 설치 프로그램 |
|
|
Oracle Cloud Infrastructure |
|
|
지원되는 유형을 확인하려면 명령을 실행합니다.
composer-cli compose types
# composer-cli compose types
1.3. 이미지 빌드에 지원되는 아키텍처
RHEL 이미지 빌더에서는 다음 아키텍처의 이미지 빌드를 지원합니다.
-
AMD 및 Intel 64비트(
x86_64
) -
ARM64 (
aarch64
) -
IBM Z (
s390x
) - IBM POWER 시스템 (ppc64)
그러나 RHEL 이미지 빌더에서는 다중 아키텍처 빌드를 지원하지 않습니다. 이는 실행 중인 것과 동일한 시스템 아키텍처의 이미지만 빌드합니다. 예를 들어 RHEL 이미지 빌더가 x86_64
시스템에서 실행되는 경우 x86_64
아키텍처의 이미지만 빌드할 수 있습니다.
2장. RHEL 이미지 빌더 설치
RHEL 이미지 빌더는 사용자 정의 시스템 이미지를 생성하는 툴입니다. RHEL 이미지 빌더를 사용하기 전에 설치해야 합니다.
2.1. RHEL 이미지 빌더 시스템 요구 사항
RHEL 이미지 빌더를 실행하는 호스트는 다음 요구 사항을 충족해야 합니다.
매개변수 | 최소 필수 값 |
---|---|
시스템 유형 | 전용 호스트 또는 가상 머신. Red Hat UBI(Universal Base Images)를 포함한 컨테이너에서 RHEL 이미지 빌더는 지원되지 않습니다. |
프로세서 | 2개의 코어 |
메모리 | 4GiB |
디스크 공간 | ' /var/cache/' 파일 시스템에서 20GiB의 여유 공간 |
액세스 권한 | root |
네트워크 | Red Hat CDN(Content Delivery Network)에 대한 인터넷 연결. |
인터넷 연결이 없는 경우 격리된 네트워크에서 RHEL 이미지 빌더를 사용합니다. 이를 위해 Red Hat CDN(Content Delivery Network)에 연결되지 않도록 로컬 리포지토리를 가리키도록 기본 리포지토리를 재정의해야 합니다. 콘텐츠가 내부적으로 미러링되었는지 확인하거나 Red Hat Satellite를 사용하십시오.
2.2. RHEL 이미지 빌더 설치
모든 osbuild-composer
패키지 기능에 액세스할 수 있도록 RHEL 이미지 빌더를 설치합니다.
사전 요구 사항
- RHEL 이미지 빌더를 설치하려는 RHEL 호스트에 로그인되어 있습니다.
- Red Hat Enterprise Linux 호스트는 RHSM(Red Hat Subscription Manager) 또는 Red Hat Satellite에 가입되어 있습니다.
-
BaseOS
및AppStream
리포지토리를 활성화하여 RHEL 이미지 빌더 패키지를 설치할 수 있습니다.
프로세스
RHEL 이미지 빌더 및 기타 필요한 패키지를 설치합니다.
*dnf install osbuild-composer composer-cli cockpit-image-builder*
# *dnf install osbuild-composer composer-cli cockpit-image-builder*
Copy to Clipboard Copied! -
osbuild-composer
- 사용자 지정된 RHEL 운영 체제 이미지를 빌드하는 서비스입니다. -
composer-cli
- 이 패키지를 사용하면 CLI 인터페이스에 액세스할 수 있습니다. -
Cockpit-image-builder
- 이 패키지를 사용하면 웹 UI 인터페이스에 액세스할 수 있습니다. 웹 콘솔은cockpit-image-builder
패키지의 종속성으로 설치됩니다.
-
RHEL 이미지 빌더 소켓을 활성화하고 시작합니다.
*systemctl enable --now osbuild-composer.socket*
# *systemctl enable --now osbuild-composer.socket*
Copy to Clipboard Copied! 웹 콘솔에서 RHEL 이미지 빌더를 사용하려면 활성화한 후 시작합니다.
*systemctl enable --now cockpit.socket*
# *systemctl enable --now cockpit.socket*
Copy to Clipboard Copied! osbuild-composer
및cockpit
서비스는 첫 번째 액세스 시 자동으로 시작됩니다.로그아웃하지 않고
composer-cli
명령의 자동 완성 기능이 즉시 작동하도록 쉘 구성 스크립트를 로드합니다.*source /etc/bash_completion.d/composer-cli*
$ *source /etc/bash_completion.d/composer-cli*
Copy to Clipboard Copied! Red Hat Enterprise Linux 호스트에서 실행 중인
osbuild-composer
서비스를 다시 시작합니다.*systemctl restart osbuild-composer*
# *systemctl restart osbuild-composer*
Copy to Clipboard Copied!
검증
composer-cli
:을 실행하여 설치가 작동하는지 확인합니다.*composer-cli status show*
# *composer-cli status show*
Copy to Clipboard Copied!
문제 해결
시스템 저널을 사용하여 RHEL 이미지 빌더 활동을 추적할 수 있습니다. 또한 파일에서 로그 메시지를 찾을 수 있습니다.
역추적의 저널 출력을 찾으려면 다음 명령을 실행합니다.
*journalctl | grep osbuild*
$ *journalctl | grep osbuild*
Copy to Clipboard Copied! 원격 작업자 또는 로컬 작업자를 모두 표시하려면 다음을 수행합니다.
journalctl -u osbuild-worker*
$ journalctl -u osbuild-worker*
Copy to Clipboard Copied! 실행 중인 서비스를 표시하려면 다음을 수행합니다.
*journalctl -u osbuild-composer.service*
$ *journalctl -u osbuild-composer.service*
Copy to Clipboard Copied!
3장. RHEL 이미지 빌더 리포지토리 구성
RHEL 이미지 빌더를 사용하려면 리포지토리가 구성되어 있는지 확인해야 합니다. RHEL 이미지 빌더에서 다음 유형의 리포지토리를 사용할 수 있습니다.
- 공식 리포지토리 덮어쓰기
- Red Hat CDN(Content Delivery Network) 공식 리포지토리(예: 네트워크의 사용자 지정 미러) 이외의 위치에서 기본 시스템 RPM을 다운로드하려는 경우 이를 사용합니다. 공식 리포지토리 덮어쓰기를 사용하면 기본 리포지토리가 비활성화되고 사용자 지정 미러에 필요한 모든 패키지가 포함되어야 합니다.
- 사용자 정의 타사 리포지토리
- 이를 사용하여 공식 RHEL 리포지토리에서 사용할 수 없는 패키지를 포함합니다.
3.1. RHEL 이미지 빌더에 사용자 지정 타사 리포지토리 추가
사용자 지정 타사 소스를 리포지토리에 추가하고 composer-cli
를 사용하여 이러한 리포지토리를 관리할 수 있습니다.
사전 요구 사항
- 사용자 지정 타사 리포지토리의 URL이 있습니다.
프로세스
/root/repo.toml
와 같은 리포지토리 소스 파일을 만듭니다. 예를 들면 다음과 같습니다.id = "k8s" name = "Kubernetes" type = "yum-baseurl" url = "https://server.example.com/repos/company_internal_packages/" check_gpg = false check_ssl = false system = false
id = "k8s" name = "Kubernetes" type = "yum-baseurl" url = "https://server.example.com/repos/company_internal_packages/" check_gpg = false check_ssl = false system = false
Copy to Clipboard Copied! type
필드에는yum-baseurl
,yum-mirrorlist
,yum-metalink
라는 유효한 값을 사용할 수 있습니다.- 파일을 TOML 형식으로 저장합니다.
RHEL 이미지 빌더에 새 타사 소스를 추가합니다.
composer-cli sources add file-name.toml
$ composer-cli sources add file-name.toml
Copy to Clipboard Copied!
검증
새 소스가 성공적으로 추가되었는지 확인합니다.
composer-cli sources list
$ composer-cli sources list
Copy to Clipboard Copied! 새 소스 콘텐츠를 확인합니다.
composer-cli sources info source_id
$ composer-cli sources info source_id
Copy to Clipboard Copied!
3.2. RHEL 이미지 빌더에 특정 배포판을 사용하여 타사 리포지토리 추가
선택 사항 필드 distro
를 사용하여 사용자 지정 타사 소스 파일에서 배포 목록을 지정할 수 있습니다. 리포지토리 파일은 이미지 빌드 중에 종속성을 확인하는 동안 배포 문자열 목록을 사용합니다.
rhel-10.0
을 지정하는 모든 요청에서는 이 소스를 사용합니다. 예를 들어 패키지를 나열하고 rhel-10.0
을 지정하는 경우 이 소스가 포함됩니다. 그러나 호스트 배포에 대한 패키지를 나열해도 이 소스는 포함되지 않습니다.
사전 요구 사항
- 사용자 지정 타사 리포지토리의 URL이 있습니다.
- 지정할 배포 목록이 있습니다.
프로세스
/root/repo.toml
와 같은 리포지토리 소스 파일을 만듭니다. 예를 들어 배포를 지정하려면 다음을 수행합니다.check_gpg = true check_ssl = true distros = ["rhel-10.0"] id = "rhel-10.0-local" name = "packages for RHEL" system = false type = "yum-baseurl" url = "https://local/repos/rhel10/projectrepo/"
check_gpg = true check_ssl = true distros = ["rhel-10.0"] id = "rhel-10.0-local" name = "packages for RHEL" system = false type = "yum-baseurl" url = "https://local/repos/rhel10/projectrepo/"
Copy to Clipboard Copied! - 파일을 TOML 형식으로 저장합니다.
RHEL 이미지 빌더에 새 타사 소스를 추가합니다.
composer-cli sources add file-name.toml
$ composer-cli sources add file-name.toml
Copy to Clipboard Copied!
검증
새 소스가 성공적으로 추가되었는지 확인합니다.
composer-cli sources list
$ composer-cli sources list
Copy to Clipboard Copied! 새 소스 콘텐츠를 확인합니다.
composer-cli sources info source_id
$ composer-cli sources info source_id
Copy to Clipboard Copied!
3.3. GPG를 사용하여 리포지토리 메타데이터 확인
손상된 패키지를 감지하고 방지하려면 DNF 패키지 관리자를 사용하여 RPM 패키지에서 GNU Privacy Guard(GPG) 서명을 확인하고, 리포지토리 메타데이터가 GPG 키로 서명되었는지 확인할 수 있습니다.
키 URL로 gpgkeys
필드를 설정하여 https
를 통해 확인할 gpgkey
를 입력할 수 있습니다. 또는 보안을 개선하기 위해 전체 키를 gpgkeys
필드에 삽입하여 URL에서 키를 가져오는 대신 직접 가져올 수도 있습니다.
사전 요구 사항
- 리포지토리로 사용할 디렉터리가 존재하고 패키지가 포함되어 있습니다.
프로세스
리포지토리를 생성할 폴더에 액세스합니다.
cd repo/
$ cd repo/
Copy to Clipboard Copied! createrepo_c
를 실행하여 RPM 패키지에서 리포지토리를 생성합니다.createrepo_c .
$ createrepo_c .
Copy to Clipboard Copied! repodata가 있는 디렉터리에 액세스합니다.
cd repodata/
$ cd repodata/
Copy to Clipboard Copied! repomd.xml
파일에 서명합니다.gpg -u gpg-key-email --yes --detach-sign --armor /srv/repo/example/repomd.xml
$ gpg -u gpg-key-email --yes --detach-sign --armor /srv/repo/example/repomd.xml
Copy to Clipboard Copied! 리포지토리에서 GPG 서명 검사를 활성화하려면 다음을 수행합니다.
-
리포지토리 소스에서
check_repogpg = true
를 설정합니다. 검사를 수행할
gpgkey
를 입력합니다.https
를 통해 키를 사용할 수 있는 경우 키 URL을 사용하여gpgkeys
필드를 설정합니다. 필요한 만큼 URL 키를 추가할 수 있습니다.다음은 예제입니다.
check_gpg = true check_ssl = true id = "signed local packages" name = "repository_name" type = "yum-baseurl" url = "\https://local/repos/projectrepo/" check_repogpg = true gpgkeys=["\https://local/keys/repokey.pub"]
check_gpg = true check_ssl = true id = "signed local packages" name = "repository_name" type = "yum-baseurl" url = "\https://local/repos/projectrepo/" check_repogpg = true gpgkeys=["\https://local/keys/repokey.pub"]
Copy to Clipboard Copied! 또는
gpgkeys
필드에 직접 GPG 키를 추가합니다. 예를 들면 다음과 같습니다.check_gpg = true check_ssl = true check_repogpg id = "custom-local" name = "signed local packages" type = "yum-baseurl" url = "https://local/repos/projectrepo/" gpgkeys=["https://remote/keys/other-repokey.pub", '''-----BEGIN PGP PUBLIC KEY BLOCK----- … -----END PGP PUBLIC KEY BLOCK-----''']
check_gpg = true check_ssl = true check_repogpg id = "custom-local" name = "signed local packages" type = "yum-baseurl" url = "https://local/repos/projectrepo/" gpgkeys=["https://remote/keys/other-repokey.pub", '''-----BEGIN PGP PUBLIC KEY BLOCK----- … -----END PGP PUBLIC KEY BLOCK-----''']
Copy to Clipboard Copied! 테스트에서 서명을 찾을 수 없는 경우 GPG 툴에 다음과 유사한 오류가 표시됩니다.
GPG verification is enabled, but GPG signature is not available.
$ GPG verification is enabled, but GPG signature is not available. This may be an error or the repository does not support GPG verification: Status code: 404 for \http://repo-server/rhel/repodata/repomd.xml.asc (IP: 192.168.1.3)
Copy to Clipboard Copied! 서명이 유효하지 않은 경우 GPG 툴에 다음과 유사한 오류가 표시됩니다.
repomd.xml GPG signature verification error: Bad GPG signature
repomd.xml GPG signature verification error: Bad GPG signature
Copy to Clipboard Copied!
-
리포지토리 소스에서
검증
리포지토리의 서명을 수동으로 테스트합니다.
gpg --verify /srv/repo/example/repomd.xml.asc
$ gpg --verify /srv/repo/example/repomd.xml.asc
Copy to Clipboard Copied!
3.4. RHEL 이미지 빌더 기본 시스템 리포지토리
RHEL 이미지 빌더 osbuild-composer
백엔드는 /etc/yum.repos.d/
디렉터리에 있는 시스템 리포지토리를 상속하지 않습니다. 대신 /usr/share/osbuild-composer/repositories
디렉터리에 정의된 고유한 공식 리포지토리 세트가 있습니다. 여기에는 추가 소프트웨어 또는 이미 설치된 프로그램을 최신 버전으로 설치하는 기본 시스템 RPM이 포함된 Red Hat 공식 리포지토리가 포함됩니다. 공식 리포지토리를 재정의하려면 /etc/osbuild-composer/repositories/
에서 재정의를 정의해야 합니다. 이 디렉터리는 사용자 정의 덮어쓰기를 위한 것이며 여기에 있는 파일은 /usr/share/osbuild-composer/repositories/
디렉터리에 있는 파일보다 우선합니다.
구성 파일은 /etc/yum.repos.d/
의 파일에서 알려진 일반 RPM 리포지토리 형식에 없습니다. 대신 JSON 파일입니다.
3.5. 시스템 리포지토리 덮어쓰기
/etc/osbuild-composer/repositories
디렉터리에서 RHEL 이미지 빌더에 대한 자체 리포지토리 덮어쓰기를 구성할 수 있습니다.
사전 요구 사항
- 호스트 시스템에서 액세스할 수 있는 사용자 지정 리포지토리가 있습니다.
프로세스
리포지토리 덮어쓰기를 저장할
/etc/osbuild-composer/repositories/
디렉터리를 만듭니다.sudo mkdir -p /etc/osbuild-composer/repositories
$ sudo mkdir -p /etc/osbuild-composer/repositories
Copy to Clipboard Copied! RHEL 버전에 해당하는 이름을 사용하여 JSON 파일을 생성합니다. 또는
/usr/share/osbuild-composer/
에서 배포에 대한 파일을 복사하고 해당 콘텐츠를 수정할 수 있습니다.RHEL 10의 경우
/etc/osbuild-composer/repositories/rhel-10.json
을 사용합니다.JSON 파일에 다음 구조를 추가합니다. 문자열 형식으로 다음 속성 중 하나만 지정합니다.
-
baseurl
- 리포지토리의 기본 URL입니다. -
metalink
- 유효한 미러 리포지토리 목록이 포함된 metalink 파일의 URL입니다. mirrorlist
- 유효한 미러 저장소 목록이 포함된 미러 목록 파일의 URL입니다. 나머지 필드(예:gpgkey
) 및metadata_expire
는 선택 사항입니다.예를 들면 다음과 같습니다.
{ "x86_64": [ { "name": "baseos", "baseurl": "http://mirror.example.com/composes/released/RHEL-10.0/10.0/BaseOS/x86_64/os/", "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\n (…)", "check_gpg": true } ] }
{ "x86_64": [ { "name": "baseos", "baseurl": "http://mirror.example.com/composes/released/RHEL-10.0/10.0/BaseOS/x86_64/os/", "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\n (…)", "check_gpg": true } ] }
Copy to Clipboard Copied! 또는
rhel-version.json
을 RHEL 버전으로 교체하여 배포에 대한 JSON 파일을 복사할 수 있습니다(예:rhel-10.0.json
).cp /usr/share/osbuild-composer/repositories/rhel-10.0.json /etc/osbuild-composer/repositories/
$ cp /usr/share/osbuild-composer/repositories/rhel-10.0.json /etc/osbuild-composer/repositories/
Copy to Clipboard Copied!
-
선택 사항: JSON 파일을 확인합니다.
json_verify /etc/osbuild-composer/repositories/file.json
$ json_verify /etc/osbuild-composer/repositories/file.json
Copy to Clipboard Copied! rhel-10.0.json
파일에서baseurl
경로를 편집하여 저장합니다. 예를 들면 다음과 같습니다./etc/osbuild-composer/repositories/rhel-10.0.json
$ /etc/osbuild-composer/repositories/rhel-10.0.json
Copy to Clipboard Copied! osbuild-composer.service
:을 다시 시작하십시오.sudo systemctl restart osbuild-composer.service
$ sudo systemctl restart osbuild-composer.service
Copy to Clipboard Copied!
검증
리포지토리가 올바른 URL을 가리키는지 확인합니다.
cat /etc/yum.repos.d/redhat.repo
$ cat /etc/yum.repos.d/redhat.repo
Copy to Clipboard Copied! 리포지토리가
/etc/yum.repos.d/redhat.repo
파일에서 복사되는 올바른 URL을 가리키는 것을 확인할 수 있습니다.
3.6. 서브스크립션이 필요한 시스템 리포지토리 덮어쓰기
/etc/yum.repos.d/redhat.repo
파일에 정의된 시스템 서브스크립션을 사용하도록 osbuild-composer
서비스를 설정할 수 있습니다. osbuild-composer
에서 시스템 서브스크립션을 사용하려면 다음 세부 정보가 있는 리포지토리 덮어쓰기를 정의합니다.
-
/etc/yum.repos.d/redhat.repo
에 정의된 리포지토리와 동일한baseurl
입니다. JSON 오브젝트에 정의된
"rhsm": true
의 값입니다.참고osbuild-composer
는/etc/yum.repos.d/
에 정의된 리포지토리를 자동으로 사용하지 않습니다. 수동으로 시스템 리포지토리 덮어쓰기로 지정하거나composer-cli
를 사용하여 추가소스로
지정해야 합니다. "BaseOS" 및 "AppStream" 리포지토리는 일반적으로 시스템 리포지토리 덮어쓰기를 사용하지만 다른 모든 리포지토리는composer-cli
소스를 사용합니다.
사전 요구 사항
-
시스템에
/etc/yum.repos.d/redhat.repo
에 정의된 서브스크립션이 있습니다. - 리포지토리 덮어쓰기가 생성되어 있습니다.
프로세스
/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-10.0/10.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
# cat /etc/yum.repos.d/redhat.repo [AppStream] name = AppStream mirror example baseurl = \https://mirror.example.com/RHEL-10.0/10.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
Copy to Clipboard Copied! 동일한
baseurl
을 사용하고rhsm
을 true로 설정하도록 리포지토리 덮어쓰기를 구성합니다.{ "x86_64": [ { "name": "AppStream mirror example", "baseurl": "https://mirror.example.com/RHEL-10.0/10.0/AppStream/x86_64/os/", "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\n (...)", "check_gpg": true, "rhsm": true } ] }
{ "x86_64": [ { "name": "AppStream mirror example", "baseurl": "https://mirror.example.com/RHEL-10.0/10.0/AppStream/x86_64/os/", "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\n (...)", "check_gpg": true, "rhsm": true } ] }
Copy to Clipboard Copied! osbuild-composer.service
:을 다시 시작하십시오.sudo systemctl restart osbuild-composer.service
$ sudo systemctl restart osbuild-composer.service
Copy to Clipboard Copied!
3.7. Satellite CV를 콘텐츠 소스로 구성 및 사용
Satellite의 콘텐츠 뷰(CV)를 리포지토리로 사용하여 RHEL 이미지 빌더로 이미지를 빌드할 수 있습니다. 이를 위해 Satellite에 등록된 호스트에서 Red Hat CDN(Content Delivery Network) 공식 리포지토리 대신 Satellite 리포지토리에서 검색할 수 있도록 리포지토리 참조를 수동으로 구성합니다.
사전 요구 사항
- RHEL 이미지 빌더를 설치했습니다. RHEL 이미지 빌더 설치를 참조하십시오.
- Satellite 6에 등록된 호스트에서 RHEL 이미지 빌더를 사용하고 있습니다. 프로비저닝을 위한 RHEL 이미지 빌더 이미지 링크https://docs.redhat.com/en/documentation/red_hat_satellite/6.7/html/provisioning_guide/index#using-an-image-builder-image-for-provisioning[Using를 참조하십시오.
프로세스
현재 구성된 리포지토리에서 리포지토리 URL을 찾습니다.
$ sudo yum -v repolist "-baseos-rpms" | grep -i repo-baseurl
$ $ sudo yum -v repolist "-baseos-rpms" | grep -i repo-baseurl
Copy to Clipboard Copied! 다음 출력은 예제입니다.
https://satellite6.example.com/pulp/content/YourOrg/YourEnv/YourCV/content/dist/rhel10/10/x86_64/baseos/os
https://satellite6.example.com/pulp/content/YourOrg/YourEnv/YourCV/content/dist/rhel10/10/x86_64/baseos/os
Copy to Clipboard Copied! 하드 코딩된 리포지토리를 Satellite Server로 수정합니다.
0755
권한이 있는 리포지토리 디렉터리를 생성합니다.sudo mkdir -pvm 0755 /etc/osbuild-composer/repositories
$ sudo mkdir -pvm 0755 /etc/osbuild-composer/repositories
Copy to Clipboard Copied! /usr/share/osbuild-composer/repositories/*.json
의 콘텐츠를 생성한 디렉터리로 복사합니다.sudo cp /usr/share/osbuild-composer/repositories/*.json /etc/osbuild-composer/repositories/
$ sudo cp /usr/share/osbuild-composer/repositories/*.json /etc/osbuild-composer/repositories/
Copy to Clipboard Copied! /content/dist/*
행을 통해 Satellite URL 및 파일 콘텐츠를 업데이트합니다.sudo sed -i -e 's|cdn.redhat.com|satellite6.example.com/pulp/content/YourOrg/YourEnv/YourCV|' /etc/osbuild-composer/repositories/.json
$ sudo sed -i -e 's|cdn.redhat.com|satellite6.example.com/pulp/content/YourOrg/YourEnv/YourCV|' /etc/osbuild-composer/repositories/.json
Copy to Clipboard Copied! 구성이 올바르게 교체되었는지 확인합니다.
sudo vi /etc/osbuild-composer/repositories/rhel-10.json
$ sudo vi /etc/osbuild-composer/repositories/rhel-10.json
Copy to Clipboard Copied!
서비스를 다시 시작하십시오.
sudo systemctl restart osbuild-worker@1.service osbuild-composer.service
$ sudo systemctl restart osbuild-worker@1.service osbuild-composer.service
Copy to Clipboard Copied! - Red Hat 이미지 빌더 구성에서 필요한 시스템 리포지토리를 재정의하고 Satellite 리포지토리의 URL을 baseurl로 사용합니다. 시스템 리포지토리 덮어쓰기를 참조하십시오.
3.8. RHEL 이미지 빌더에서 이미지를 빌드하는 데 Satellite CV를 리포지토리로 사용
Satellite의 content views(CV)를 리포지토리로 사용하여 사용자 정의 이미지를 빌드하도록 RHEL 이미지 빌더를 구성합니다.
사전 요구 사항
- RHEL 웹 콘솔과 Satellite를 통합했습니다. Satellite에서 RHEL 웹 콘솔 활성화를참조하십시오.
프로세스
- Satellite 웹 UI에서 콘텐츠 > 제품으로 이동하여 제품을 선택하고 사용할 리포지토리를 클릭합니다.
- 게시됨 필드에서 보안 URL(HTTPS)을 검색하고 복사합니다.
- Red Hat 이미지 빌더 리포지토리의 baseurl으로 복사한 URL을 사용합니다. RHEL 이미지 빌더에 사용자 지정 타사 리포지토리 추가 를 참조하십시오.
4장. RHEL 이미지 빌더 CLI를 사용하여 시스템 이미지 생성
RHEL 이미지 빌더는 사용자 정의 시스템 이미지를 생성하는 툴입니다. RHEL 이미지 빌더를 제어하고 사용자 정의 시스템 이미지를 생성하려면 CLI(명령줄) 또는 웹 콘솔 인터페이스를 사용할 수 있습니다.
4.1. RHEL 이미지 빌더 명령줄 인터페이스 소개
RHEL 이미지 빌더 CLI(명령줄 인터페이스)를 사용하여 적절한 옵션 및 하위 명령으로 composer-cli
명령을 실행하여 블루프린트를 생성할 수 있습니다.
명령줄의 워크플로는 다음과 같이 요약할 수 있습니다.
- 기존 블루프린트 정의를 일반 텍스트 파일에 블루프린트 또는 내보내기(저장) 생성
- 텍스트 편집기에서 이 파일 편집
- 블루프린트 텍스트 파일을 다시 이미지 빌더로 가져오기
- 작성을 실행하여 블루프린트에서 이미지를 빌드합니다.
- 이미지 파일을 다운로드하여 내보냅니다.
블루프린트를 생성하기 위한 기본 하위 명령 외에도 composer-cli
명령은 구성된 블루프린트의 상태를 검사하고 구성합니다.
4.2. RHEL 이미지 빌더를 루트가 아닌 사용자로 사용
composer-cli
명령을 root가 아닌 것으로 실행하려면 사용자가 weldr
그룹에 있어야 합니다.
사전 요구 사항
- 사용자를 생성했습니다.
프로세스
weldr
또는root
그룹에 사용자를 추가하려면 다음 명령을 실행합니다.sudo usermod -a -G weldr user newgrp weldr
$ sudo usermod -a -G weldr user $ newgrp weldr
Copy to Clipboard Copied!
4.3. 명령줄을 사용하여 블루프린트 생성
CLI(명령줄)를 사용하여 새 RHEL 이미지 빌더 블루프린트를 생성할 수 있습니다. 블루프린트는 최종 이미지 및 패키지 등의 사용자 정의 및 커널 사용자 지정을 설명합니다.
사전 요구 사항
-
root 사용자 또는
weldr
그룹의 멤버인 사용자로 로그인했습니다.
프로세스
다음 콘텐츠를 사용하여 일반 텍스트 파일을 생성합니다.
name = "BLUEPRINT-NAME" description = "LONG FORM DESCRIPTION TEXT" version = "0.0.1" modules = [] groups = []
name = "BLUEPRINT-NAME" description = "LONG FORM DESCRIPTION TEXT" version = "0.0.1" modules = [] groups = []
Copy to Clipboard Copied! BLUEPRINT-NAME 및 LONG FORM DESCRIPTION TEXT 를 블루프린트의 이름 및 설명으로 바꿉니다.
0.0.1 을 Semantic Versioning 스키마에 따른 버전 번호로 바꿉니다.
블루프린트에 포함할 모든 패키지에 대해 파일에 다음 행을 추가합니다.
[[packages]] name = "package-name" version = "package-version"
[[packages]] name = "package-name" version = "package-version"
Copy to Clipboard Copied! package-name 을
httpd
,gdb-doc
또는coreutils
와 같은 패키지 이름으로 교체합니다.선택적으로 package-version 을 사용할 버전으로 교체합니다. 이 필드는
dnf
버전 사양을 지원합니다.-
특정 버전의 경우
8.7.0
과 같은 정확한 버전 번호를 사용하십시오. -
사용 가능한 최신 버전의 경우 별표
*
를 사용하십시오. -
최신 마이너 버전의 경우
8.*
와 같은 형식을 사용하십시오.
-
특정 버전의 경우
요구 사항에 맞게 블루프린트를 사용자 정의합니다. 예를 들어 Simultaneous Multi Threading (SMT)을 비활성화하고 블루프린트 파일에 다음 행을 추가합니다.
[customizations.kernel] append = "nosmt=force"
[customizations.kernel] append = "nosmt=force"
Copy to Clipboard Copied! 사용 가능한 추가 사용자 지정은 지원되는 이미지 사용자 정의를 참조하십시오.
[]
및[[]]
는 TOML로 표현되는 다양한 데이터 구조입니다.-
[customizations.kernel]
헤더는 키 및 해당 값 쌍으로 정의된 단일 테이블을 나타냅니다(예:append = "nosmt=force"
). -
[[packages]]
헤더는 테이블 배열을 나타냅니다. 첫 번째 인스턴스는 배열과 첫 번째 테이블 요소(예:name = "package-name"
및version = "package-version"
)를 정의하고 각 후속 인스턴스는 사용자가 정의한 순서대로 해당 배열에 새 테이블 요소를 생성하고 정의합니다.
-
-
파일(예:
BLUEPRINT-NAME.toml
)을 저장하고 텍스트 편집기를 종료합니다. 선택 사항: 블루프린트 TOML 파일의 모든 설정이 올바르게 구문 분석되었는지 확인합니다. 블루프린트를 저장하고 저장된 출력을 입력 파일과 비교합니다.
composer-cli blueprints save BLUEPRINT-NAME.toml
# composer-cli blueprints save BLUEPRINT-NAME.toml
Copy to Clipboard Copied! -
저장된
BLUEPRINT-NAME.toml
를 입력 파일과 비교합니다.
-
저장된
블루프린트를 푸시합니다.
composer-cli blueprints push BLUEPRINT-NAME.toml
# composer-cli blueprints push BLUEPRINT-NAME.toml
Copy to Clipboard Copied! BLUEPRINT-NAME 을 이전 단계에서 사용한 값으로 바꿉니다.
참고composer-cli
를 루트가 아닌 사용자로 사용하여 이미지를 생성하려면weldr
또는root
그룹에 사용자를 추가합니다.usermod -a -G weldr user newgrp weldr
# usermod -a -G weldr user $ newgrp weldr
Copy to Clipboard Copied!
검증
기존 블루프린트를 나열하여 블루프린트가 푸시되어 있는지 확인합니다.
composer-cli blueprints list
# composer-cli blueprints list
Copy to Clipboard Copied! 방금 추가한 블루프린트 구성을 표시합니다.
composer-cli blueprints show BLUEPRINT-NAME
# composer-cli blueprints show BLUEPRINT-NAME
Copy to Clipboard Copied! 블루프린트 및 해당 종속 항목에 나열된 구성 요소 및 버전이 유효한지 확인합니다.
composer-cli blueprints depsolve BLUEPRINT-NAME
# composer-cli blueprints depsolve BLUEPRINT-NAME
Copy to Clipboard Copied! RHEL 이미지 빌더에서 사용자 정의 리포지토리에서 패키지의 종속 항목을 해결할 수 없는 경우
osbuild-composer
캐시를 제거합니다.sudo rm -rf /var/cache/osbuild-composer/ sudo systemctl restart osbuild-composer
$ sudo rm -rf /var/cache/osbuild-composer/ $ sudo systemctl restart osbuild-composer
Copy to Clipboard Copied!
4.4. 명령줄 인터페이스를 사용하여 블루프린트 편집
CLI(명령줄) 인터페이스에서 기존 블루프린트를 편집하여 새 패키지를 추가하거나 새 그룹을 정의하고 사용자 지정 이미지를 생성할 수 있습니다. 이를 위해 다음 단계를 수행합니다.
사전 요구 사항
- 블루프린트를 생성했습니다.
프로세스
기존 블루프린트를 나열합니다.
composer-cli blueprints list
# composer-cli blueprints list
Copy to Clipboard Copied! 블루프린트를 로컬 텍스트 파일에 저장합니다.
composer-cli blueprints save BLUEPRINT-NAME
# composer-cli blueprints save BLUEPRINT-NAME
Copy to Clipboard Copied! -
텍스트 편집기를 사용하여
BLUEPRINT-NAME.toml
파일을 편집하고 변경합니다. 편집을 완료하기 전에 파일이 유효한 블루프린트인지 확인합니다.
블루프린트에서 다음 행을 제거합니다.
packages = []
packages = []
Copy to Clipboard Copied! - 버전 번호를 0.0.1에서 0.1.0으로 늘립니다. RHEL 이미지 빌더 블루프린트 버전에서는 Semantic Versioning 스키마를 사용해야 합니다. 또한 버전을 변경하지 않으면 패치 버전 구성 요소가 자동으로 증가합니다.
- 파일을 저장하고 텍스트 편집기를 종료합니다.
블루프린트를 RHEL 이미지 빌더로 다시 푸시합니다.
composer-cli blueprints push BLUEPRINT-NAME.toml
# composer-cli blueprints push BLUEPRINT-NAME.toml
Copy to Clipboard Copied! 참고블루프린트를 RHEL 이미지 빌더로 다시 가져오려면
.toml
확장을 포함한 파일 이름을 제공하고 다른 명령에서는 블루프린트 이름만 사용합니다.
검증
RHEL 이미지 빌더에 업로드된 콘텐츠가 편집 내용과 일치하는지 확인하려면 블루프린트 내용을 나열합니다.
composer-cli blueprints show BLUEPRINT-NAME
# composer-cli blueprints show BLUEPRINT-NAME
Copy to Clipboard Copied! 블루프린트 및 해당 종속 항목에 나열된 구성 요소 및 버전이 유효한지 확인합니다.
composer-cli blueprints depsolve BLUEPRINT-NAME
# composer-cli blueprints depsolve BLUEPRINT-NAME
Copy to Clipboard Copied!
4.5. 명령줄에서 RHEL 이미지 빌더를 사용하여 시스템 이미지 생성
RHEL 이미지 빌더 명령줄 인터페이스를 사용하여 사용자 지정 RHEL 이미지를 빌드할 수 있습니다. 이를 위해 블루프린트와 이미지 유형을 지정해야 합니다. 선택적으로 배포를 지정할 수도 있습니다. 배포를 지정하지 않으면 호스트 시스템과 동일한 배포 및 버전을 사용합니다. 아키텍처는 호스트의 아키텍처와 동일합니다.
사전 요구 사항
- 이미지에 사용할 수 있는 블루프린트가 있습니다.
프로세스
선택 사항: 생성할 수 있는 이미지 형식을 나열합니다.
composer-cli compose types
# composer-cli compose types
Copy to Clipboard Copied! 작성을 시작합니다.
composer-cli compose start BLUEPRINT-NAME IMAGE-TYPE
# composer-cli compose start BLUEPRINT-NAME IMAGE-TYPE
Copy to Clipboard Copied! BLUEPRINT-NAME 을 블루프린트 이름으로 바꾸고, IMAGE-TYPE 을 이미지 유형으로 바꿉니다. 사용 가능한 값은
composer-cli compose types
명령의 출력을 참조하십시오.compose 프로세스는 백그라운드에서 시작되고 composer Universally Unique Identifier(UUID)를 표시합니다.
이미지 생성을 완료하는 데 최대 10분이 걸릴 수 있습니다.
구성의 상태를 확인하려면 다음을 수행합니다.
composer-cli compose status
# composer-cli compose status
Copy to Clipboard Copied! 완료된 작성에는 FINISHED 상태 값이 표시됩니다. 목록에서 작성을 확인하려면 해당 UUID를 사용합니다.
작성 프로세스가 완료되면 결과 이미지 파일을 다운로드합니다.
composer-cli compose image UUID
# composer-cli compose image UUID
Copy to Clipboard Copied! UUID 를 이전 단계에 표시된 UUID 값으로 바꿉니다.
검증
이미지를 생성한 후 다음 명령을 사용하여 이미지 생성 진행 상황을 확인할 수 있습니다.
이미지의 메타데이터를 다운로드하여 구성 요소에 대한 메타데이터의
.tar
파일을 가져옵니다.sudo composer-cli compose metadata UUID
$ sudo composer-cli compose metadata UUID
Copy to Clipboard Copied! 이미지 로그를 다운로드합니다.
sudo composer-cli compose logs UUID
$ sudo composer-cli compose logs UUID
Copy to Clipboard Copied! 명령은 이미지 생성 로그를 포함하는
.tar
파일을 생성합니다. 로그가 비어 있으면 저널을 확인할 수 있습니다.저널을 확인합니다.
journalctl | grep osbuild
$ journalctl | grep osbuild
Copy to Clipboard Copied! 이미지 매니페스트를 확인합니다.
sudo cat /var/lib/osbuild-composer/jobs/job_UUID.json
$ sudo cat /var/lib/osbuild-composer/jobs/job_UUID.json
Copy to Clipboard Copied! job_UUID.json은 저널에서 찾을 수 있습니다.
4.6. 기본 RHEL 이미지 빌더 명령줄 명령
RHEL 이미지 빌더 명령줄 인터페이스는 다음 하위 명령을 제공합니다.
블루프린트 조작
- 사용 가능한 모든 블루프린트 나열
composer-cli blueprints list
# composer-cli blueprints list
- TOML 형식의 블루프린트 콘텐츠 표시
composer-cli blueprints show BLUEPRINT-NAME
# composer-cli blueprints show BLUEPRINT-NAME
- TOML 형식의 블루프린트 내용을 BLUEPRINT-NAME.toml 파일에 저장(내보냄)
composer-cli blueprints save BLUEPRINT-NAME
# composer-cli blueprints save BLUEPRINT-NAME
Copy to Clipboard Copied! - 블루프린트 제거
composer-cli blueprints delete BLUEPRINT-NAME
# composer-cli blueprints delete BLUEPRINT-NAME
Copy to Clipboard Copied! - TOML 형식의 블루프린트 파일을 RHEL 이미지 빌더로 푸시(가져오기)
composer-cli blueprints push BLUEPRINT-NAME
# composer-cli blueprints push BLUEPRINT-NAME
Copy to Clipboard Copied!
블루프린트에서 이미지 구성
- 사용 가능한 이미지 유형 나열
composer-cli compose types
# composer-cli compose types
Copy to Clipboard Copied! - 구성 요소 시작
composer-cli compose start BLUEPRINT COMPOSE-TYPE
# composer-cli compose start BLUEPRINT COMPOSE-TYPE
Copy to Clipboard Copied! - 모든 구성 요소 나열
composer-cli compose list
# composer-cli compose list
Copy to Clipboard Copied! - 모든 구성 및 해당 상태 나열
composer-cli compose status
# composer-cli compose status
Copy to Clipboard Copied! - 실행 중인 구성 요소 취소
composer-cli compose cancel COMPOSE-UUID
# composer-cli compose cancel COMPOSE-UUID
Copy to Clipboard Copied! - 완료된 작성 삭제
composer-cli compose delete COMPOSE-UUID
# composer-cli compose delete COMPOSE-UUID
Copy to Clipboard Copied! - 작성에 대한 자세한 정보 표시
composer-cli compose info COMPOSE-UUID
# composer-cli compose info COMPOSE-UUID
Copy to Clipboard Copied! - 작성작의 이미지 파일 다운로드
composer-cli compose image COMPOSE-UUID
# composer-cli compose image COMPOSE-UUID
Copy to Clipboard Copied! - 하위 명령 및 옵션 추가
composer-cli help
# composer-cli help
Copy to Clipboard Copied!
4.7. RHEL 이미지 빌더에서 설치한 패키지
RHEL 이미지 빌더를 사용하여 시스템 이미지를 생성할 때 시스템은 기본 패키지 그룹 세트를 설치합니다.
블루프린트에 구성 요소를 추가할 때 추가한 구성 요소의 패키지가 다른 패키지 구성 요소와 충돌하지 않는지 확인합니다. 그렇지 않으면 시스템이 종속성을 해결하지 못하고 사용자 지정 이미지를 생성할 수 없습니다. 명령을 실행하여 패키지 간에 충돌이 없는지 확인할 수 있습니다.
composer-cli blueprints depsolve BLUEPRINT-NAME
# composer-cli blueprints depsolve BLUEPRINT-NAME
이미지 유형 | 기본 패키지 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4.8. 사용자 정의 이미지에서 활성화된 서비스
이미지 빌더를 사용하여 사용자 정의 이미지를 구성하면 이미지에서 사용하는 기본 서비스는 다음에 따라 결정됩니다.
-
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 |
참고: 시스템을 부팅하는 동안 활성화할 서비스를 사용자 지정할 수 있습니다. 그러나 사용자 지정은 언급된 이미지 유형에 대해 기본적으로 활성화된 서비스를 재정의하지 않습니다.
5장. 지원되는 이미지 사용자 정의
다음과 같은 블루프린트에 사용자 지정을 추가하여 이미지를 사용자 지정할 수 있습니다.
- 추가 RPM 패키지 추가
- 서비스 활성화
- 커널 명령줄 매개 변수 사용자 정의.
다른 사람 사이입니다. 블루프린트 내에서 여러 이미지 사용자 지정을 사용할 수 있습니다. 사용자 지정을 사용하면 기본 패키지에서 사용할 수 없는 이미지에 패키지 및 그룹을 추가할 수 있습니다. 이러한 옵션을 사용하려면 블루프린트에서 사용자 지정을 구성하고 RHEL 이미지 빌더로 가져오기(push)합니다.
5.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 = "blueprint_name" description = "blueprint_version" version = "0.1" distro = "different_minor_version"
Copy to Clipboard Copied! 예를 들면 다음과 같습니다.
name = "tmux" description = "tmux image with openssh" version = "1.2.16" distro = "rhel-9.6"
name = "tmux" description = "tmux image with openssh" version = "1.2.16" distro = "rhel-9.6"
Copy to Clipboard Copied!
"different_minor_version"
을 교체하여 다른 마이너 버전을 빌드합니다. 예를 들어 RHEL 9.6 이미지를 빌드하려면 distro
= "rhel-96"을 사용합니다. RHEL 9.5 이미지에서 RHEL 9.4, RHEL 9.3 및 이전 릴리스와 같은 마이너 버전을 빌드할 수 있습니다.
5.2. 패키지 그룹 선택
패키지 그룹으로 블루프린트를 사용자 지정합니다. 그룹
목록은 이미지에 설치할 패키지 그룹을 설명합니다. 패키지 그룹은 리포지토리 메타데이터에 정의되어 있습니다. 각 그룹에는 주로 사용자 인터페이스에 표시하는 데 사용되는 설명적인 이름과 Kickstart 파일에서 일반적으로 사용되는 ID가 있습니다. 이 경우 ID를 사용하여 그룹을 나열해야 합니다. 그룹에는 필수, 기본값, 선택 사항 등 패키지를 분류하는 세 가지 방법이 있습니다. 필수 및 기본 패키지만 블루프린트에 설치됩니다. 선택적 패키지를 선택할 수 없습니다.
name
속성은 필수 문자열이며 리포지토리의 패키지 그룹 ID와 정확히 일치해야 합니다.
현재 osbuild-composer
의 패키지와 모듈 간에는 차이가 없습니다. 둘 다 RPM 패키지 종속성으로 취급됩니다.
패키지로 블루프린트를 사용자 지정합니다.
[[groups]] name = "group_name"
[[groups]] name = "group_name"
Copy to Clipboard Copied! group_name
을 그룹 이름으로 교체합니다. 예:anaconda-tools
:[[groups]] name = "anaconda-tools"
[[groups]] name = "anaconda-tools"
Copy to Clipboard Copied!
5.3. 패키지 선택
패키지 및 모듈로 블루프린트를 사용자 지정합니다.
-
name
속성은 필수 문자열이며 정확히 일치하거나 와일드카드에*
를 사용하는 파일 시스템 와일드카드, 일치하는 문자의 경우?
일 수 있습니다. -
version
속성은 선택적 문자열이거나 와일드카드에*
를 사용하는 버전의 파일 시스템 와일드카드, 일치하는 문자의 경우?
일 수 있습니다. 버전을 입력하지 않으면 시스템은 리포지토리의 최신 버전을 사용합니다.
가상 서비스를 패키지 이름으로 사용하는 경우 버전 glob는 *
여야 합니다. 결과적으로 provides가 고유한 이름과 버전이 있는 여러 패키지로 확장되므로 블루프린트를 정지할 수 없습니다.
현재 osbuild-composer
의 패키지와 모듈 간에는 차이가 없습니다. 둘 다 RPM 패키지 종속성으로 처리됩니다. .Procedure
패키지로 블루프린트를 사용자 지정합니다.
[[packages]] name = "package_name"
[[packages]] name = "package_name"
Copy to Clipboard Copied! package_name
을 그룹 이름으로 교체합니다. 예를 들어tmux-2.9a
및openssh-server-8.*
패키지가 있습니다.[[packages]] name = "tmux" version = "2.9a"
[[packages]] name = "tmux" version = "2.9a"
Copy to Clipboard Copied!
name = "openssh-server" version = "8.*"
5.4. 컨테이너 포함
블루프린트를 사용자 지정하여 최신 RHEL 컨테이너를 포함할 수 있습니다. 컨테이너 목록에는 소스가 있는 오브젝트와 필요한 경우 tls-verify
속성이 포함되어 있습니다.
컨테이너 목록 항목은 이미지에 포함할 컨테이너 이미지를 설명합니다.
-
Source
- 필수 필드입니다. 레지스트리의 컨테이너 이미지에 대한 참조입니다. 이 예에서는registry.access.redhat.com
레지스트리를 사용합니다. 태그 버전을 지정할 수 있습니다. 기본 태그 버전은 latest입니다. -
name
- 로컬 레지스트리에 있는 컨테이너의 이름입니다. -
tls-verify
- 부울 필드. tls-verify 부울 필드는 전송 계층 보안을 제어합니다. 기본값은 true입니다.
포함된 컨테이너는 자동으로 시작되지 않습니다. 시작하려면 파일 사용자 지정이 포함된 systemd
장치 파일 또는
사각형을 만듭니다.
registry.access.redhat.com/ubi10/ubi:latest
의 컨테이너와 호스트의 컨테이너를 포함하려면 블루프린트에 다음 사용자 지정을 추가합니다.[[containers]] source = "registry.access.redhat.com/ubi10/ubi:latest" name = "local-name" tls-verify = true [[containers]] source = "localhost/test:latest" local-storage = true
[[containers]] source = "registry.access.redhat.com/ubi10/ubi:latest" name = "local-name" tls-verify = true [[containers]] source = "localhost/test:latest" local-storage = true
Copy to Clipboard Copied!
containers-auth.json
파일을 사용하여 보호된 컨테이너 리소스에 액세스할 수 있습니다. 컨테이너 레지스트리 인증 정보를 참조하십시오.
5.5. 이미지 호스트 이름 설정
customization .hostname
은 최종 이미지 호스트 이름을 구성하는 데 사용할 수 있는 선택적 문자열입니다. 이 사용자 지정은 선택 사항이며 설정하지 않으면 블루프린트에서 기본 호스트 이름을 사용합니다.
블루프린트를 사용자 지정하여 호스트 이름을 구성합니다.
[customizations] hostname = "baseimage"
[customizations] hostname = "baseimage"
Copy to Clipboard Copied!
5.6. 추가 사용자 지정
이미지에 사용자를 추가하고 선택적으로 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 = "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
Copy to Clipboard Copied! [[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 = 12345
[[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 = 12345
Copy to Clipboard Copied! GID는 선택 사항이며 이미지에 이미 있어야 합니다. 선택적으로 패키지가 생성되거나 블루프린트는
[customizations.group]
항목을 사용하여 GID를 생성합니다.PASSWORD-HASH 를 실제
암호 해시
로 바꿉니다.암호 해시
를 생성하려면 다음과 같은 명령을 사용합니다.*python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'*
$ *python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'*
Copy to Clipboard Copied! 다른 자리 표시자를 적절한 값으로 바꿉니다.
name
값을 입력하고 필요하지 않은 행을 생략합니다.모든 사용자가 다음을 포함하도록 이 블록을 반복합니다.
5.7. 추가 그룹 지정
결과 시스템 이미지에 대한 그룹을 지정합니다. name
및 gid
속성은 모두 필수입니다.
그룹으로 블루프린트를 사용자 지정합니다.
[[customizations.group]] name = "GROUP-NAME" gid = NUMBER
[[customizations.group]] name = "GROUP-NAME" gid = NUMBER
Copy to Clipboard Copied! 모든 그룹에 대해 이 블록을 반복하여 포함합니다. 예를 들면 다음과 같습니다.
[[customizations.group]] name = "widget" gid = 1130
[[customizations.group]] name = "widget" gid = 1130
Copy to Clipboard Copied!
5.8. 기존 사용자를 위한 SSH 키 설정
custom .sshkey
를 사용하여 최종 이미지에 있는 기존 사용자의 SSH 키를 설정할 수 있습니다. 사용자
및 키
속성은 모두 필수입니다.
기존 사용자의 SSH 키를 설정하여 블루프린트를 사용자 지정합니다.
[[customizations.sshkey]] user = "root" key = "PUBLIC-SSH-KEY"
[[customizations.sshkey]] user = "root" key = "PUBLIC-SSH-KEY"
Copy to Clipboard Copied! 예를 들면 다음과 같습니다.
[[customizations.sshkey]] user = "root" key = "SSH key for root"
[[customizations.sshkey]] user = "root" key = "SSH key for root"
Copy to Clipboard Copied!
5.9. 커널 인수 추가
부트 로더 커널 명령줄에 인수를 추가할 수 있습니다. 기본적으로 RHEL 이미지 빌더는 기본 커널을 이미지에 빌드합니다. 그러나 블루프린트에서 커널을 구성하여 커널을 사용자 지정할 수 있습니다.
커널 부팅 매개변수 옵션을 기본값에 추가합니다.
[customizations.kernel] append = "KERNEL-OPTION"
[customizations.kernel] append = "KERNEL-OPTION"
Copy to Clipboard Copied! 예를 들면 다음과 같습니다.
[customizations.kernel] name = "kernel-debug" append = "nosmt=force"
[customizations.kernel] name = "kernel-debug" append = "nosmt=force"
Copy to Clipboard Copied!
5.10. 실시간 커널을 사용하여 RHEL 이미지 빌드
실시간 커널(kernel-rt
)을 사용하여 RHEL 이미지를 빌드하려면 리포지토리를 재정의해야 kernel-rt
가 기본 커널로 올바르게 선택되는 이미지를 빌드할 수 있습니다. /usr/share/osbuild-composer/repositories/
디렉터리의 .json
을 사용합니다. 그런 다음 시스템에 빌드한 이미지를 배포하고 실시간 커널 기능을 사용할 수 있습니다.
실시간 커널은 Red Hat Enterprise Linux 실행을 위해 인증된 AMD64 및 Intel 64 서버 플랫폼에서 실행됩니다.
사전 요구 사항
- 시스템이 등록되고 RHEL이 RHEL for Real Time 서브스크립션에 연결되어 있습니다.
프로세스
다음 디렉터리를 생성합니다.
mkdir /etc/osbuild-composer/repositories/
# mkdir /etc/osbuild-composer/repositories/
Copy to Clipboard Copied! /usr/share/osbuild-composer/repositories/rhel-10.json
파일의 콘텐츠를 새 디렉터리로 복사합니다.cp /usr/share/osbuild-composer/repositories/rhel-10.json /etc/osbuild-composer/repositories
# cp /usr/share/osbuild-composer/repositories/rhel-10.json /etc/osbuild-composer/repositories
Copy to Clipboard Copied! RT 커널 리포지터리를 포함하도록
/etc/osbuild-composer/repositories/rhel-10.json
파일을 편집합니다.grep -C 6 kernel-rt /etc/osbuild-composer/repositories/rhel-10.json
# grep -C 6 kernel-rt /etc/osbuild-composer/repositories/rhel-10.json "baseurl": "https://cdn.redhat.com/content/dist/rhel10/10/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/rhel10/10/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 },
Copy to Clipboard Copied! 서비스를 다시 시작하십시오.
systemctl restart osbuild-composer
# systemctl restart osbuild-composer
Copy to Clipboard Copied! kernel-rt
가.json
파일에 포함되어 있는지 확인합니다.composer-cli sources list composer-cli sources info kernel-rt
# composer-cli sources list # composer-cli sources info kernel-rt
Copy to Clipboard Copied! 이전에 구성한 URL이 표시됩니다.
블루프린트를 생성합니다. 블루프린트에서 "[customizations.kernel]" 사용자 지정을 추가합니다. 다음은 블루프린트에 "[customizations.kernel]"을 포함하는 예입니다.
name = "rt-kernel-image" description = "" version = "2.0.0" modules = [] groups = [] distro = "rhel-10.0" [[customizations.user]] name = "admin" password = "admin" groups = ["users", "wheel"] [customizations.kernel] name = "kernel-rt" append = ""
name = "rt-kernel-image" description = "" version = "2.0.0" modules = [] groups = [] distro = "rhel-10.0" [[customizations.user]] name = "admin" password = "admin" groups = ["users", "wheel"] [customizations.kernel] name = "kernel-rt" append = ""
Copy to Clipboard Copied! 블루프린트를 서버로 푸시합니다.
composer-cli blueprints push rt-kernel-image.toml
# composer-cli blueprints push rt-kernel-image.toml
Copy to Clipboard Copied! 생성한 블루프린트에서 이미지를 빌드합니다. 다음 예제에서는 (
.qcow2
) 이미지를 빌드합니다.composer-cli compose start rt-kernel-image qcow2
# composer-cli compose start rt-kernel-image qcow2
Copy to Clipboard Copied! - 실시간 커널 기능을 사용하려는 시스템에 빌드한 이미지를 배포합니다.
검증
이미지에서 VM을 부팅한 후 이미지가 기본
커널로
올바르게 선택되었는지 확인합니다.cat /proc/cmdline BOOT_IMAGE=(hd0,got3)/vmlinuz-6.12.0-0.el10_0_.x86_64+rt...
$ cat /proc/cmdline BOOT_IMAGE=(hd0,got3)/vmlinuz-6.12.0-0.el10_0_.x86_64+rt...
Copy to Clipboard Copied!
5.11. 시간대 및 NTP 설정
블루프린트를 사용자 지정하여 시간대 및 NTP( Network Time Protocol )를 구성할 수 있습니다. timezone
및 ntpservers
속성은 모두 선택적 문자열입니다. 시간대를 사용자 지정하지 않으면 시스템은 UTC( Universal Time, Coordinated )를 사용합니다. NTP 서버를 설정하지 않으면 시스템은 기본 배포를 사용합니다.
시간대
및 원하는ntpservers
로 블루프린트를 사용자 지정합니다.[customizations.timezone] timezone = "TIMEZONE" ntpservers = "NTP_SERVER"
[customizations.timezone] timezone = "TIMEZONE" ntpservers = "NTP_SERVER"
Copy to Clipboard Copied! 예를 들면 다음과 같습니다.
[customizations.timezone] timezone = "US/Eastern" ntpservers = ["0.north-america.pool.ntp.org", "1.north-america.pool.ntp.org"]
[customizations.timezone] timezone = "US/Eastern" ntpservers = ["0.north-america.pool.ntp.org", "1.north-america.pool.ntp.org"]
Copy to Clipboard Copied! 참고Google Cloud와 같은 일부 이미지 유형에는 이미 NTP 서버가 설정되어 있습니다. 이미지에 선택한 환경에서 NTP 서버를 부팅해야 하므로 재정의할 수 없습니다. 그러나 블루프린트에서 시간대를 사용자 지정할 수 있습니다.
5.12. 로케일 설정 사용자 정의
결과 시스템 이미지에 대한 로케일 설정을 사용자 지정할 수 있습니다. 언어
및 키보드
속성은 모두 필수입니다. 다른 많은 언어를 추가할 수 있습니다. 첫 번째 언어는 기본 언어이며 다른 언어는 보조 언어입니다.
프로세스
로케일 설정을 설정합니다.
[customizations.locale] languages = ["LANGUAGE"] keyboard = "KEYBOARD"
[customizations.locale] languages = ["LANGUAGE"] keyboard = "KEYBOARD"
Copy to Clipboard Copied! 예를 들면 다음과 같습니다.
[customizations.locale] languages = ["en_US.UTF-8"] keyboard = "us"
[customizations.locale] languages = ["en_US.UTF-8"] keyboard = "us"
Copy to Clipboard Copied! 언어에서 지원하는 값을 나열하려면 다음 명령을 실행합니다.
localectl list-locales
$ localectl list-locales
Copy to Clipboard Copied! 키보드에서 지원하는 값을 나열하려면 다음 명령을 실행합니다.
localectl list-keymaps
$ localectl list-keymaps
Copy to Clipboard Copied!
5.13. 방화벽 사용자 정의
결과 시스템 이미지에 대한 방화벽을 설정합니다. 기본적으로 방화벽은 sshd
와 같이 포트를 명시적으로 활성화하는 서비스를 제외하고 들어오는 연결을 차단합니다.
[customizations.firewall]
또는 [customizations.firewall.services]
를 사용하지 않으려는 경우 속성을 제거하거나 빈 목록 []으로 설정합니다. 기본 방화벽 설정만 사용하려는 경우 블루프린트에서 사용자 지정을 생략할 수 있습니다.
Google 템플릿은 해당 환경의 방화벽을 명시적으로 비활성화합니다. 블루프린트를 설정하여 이 동작을 재정의할 수 없습니다.
프로세스
다음 설정으로 블루프린트를 사용자 지정하여 다른 포트 및 서비스를 엽니다.
[customizations.firewall] ports = ["PORTS"]
[customizations.firewall] ports = ["PORTS"]
Copy to Clipboard Copied! 여기서 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"]
[customizations.firewall] ports = ["22:tcp", "80:tcp", "imap:tcp", "53:tcp", "53:udp", "30000-32767:tcp", "30000-32767:udp"]
Copy to Clipboard Copied! 숫자 포트 또는
/etc/services
의 해당 이름을 사용하여 포트 목록을 활성화하거나 비활성화할 수 있습니다.customization
.firewall.service 섹션에서 활성화 또는 비활성화할 방화벽 서비스를 지정합니다.
[customizations.firewall.services] enabled = ["SERVICES"] disabled = ["SERVICES"]
[customizations.firewall.services] enabled = ["SERVICES"] disabled = ["SERVICES"]
Copy to Clipboard Copied! 사용 가능한 방화벽 서비스를 확인할 수 있습니다.
firewall-cmd --get-services
$ firewall-cmd --get-services
Copy to Clipboard Copied! 예를 들면 다음과 같습니다.
[customizations.firewall.services] enabled = ["ftp", "ntp", "dhcp"] disabled = ["telnet"]
[customizations.firewall.services] enabled = ["ftp", "ntp", "dhcp"] disabled = ["telnet"]
Copy to Clipboard Copied! 참고firewall.services
에 나열된 서비스는/etc/services
파일에서 사용할 수 있는 서비스이름과
다릅니다.
5.14. 서비스 활성화 또는 비활성화
부팅 시 활성화할 서비스를 제어할 수 있습니다. 일부 이미지 유형에는 이미지가 올바르게 작동하고 이 설정을 재정의할 수 없도록 서비스가 이미 활성화되어 있거나 비활성화되어 있습니다. 블루프린트의 [customizations.services]
설정은 이러한 서비스를 대체하지 않고 이미지 템플릿에 이미 있는 서비스 목록에 서비스를 추가합니다.
부팅 시 활성화할 서비스를 사용자 지정합니다.
[customizations.services] enabled = ["SERVICES"] disabled = ["SERVICES"]
[customizations.services] enabled = ["SERVICES"] disabled = ["SERVICES"]
Copy to Clipboard Copied! 예를 들면 다음과 같습니다.
[customizations.services] enabled = ["sshd", "cockpit.socket", "httpd"] disabled = ["postfix", "telnetd"]
[customizations.services] enabled = ["sshd", "cockpit.socket", "httpd"] disabled = ["postfix", "telnetd"]
Copy to Clipboard Copied!
5.15. 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"]
[customizations.installer]
unattended = true
sudo-nopasswd = ["user", "%wheel"]
unattended
: 설치를 완전히 자동으로 만드는 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
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
: 설치 후 지정된 사용자 및 그룹이 암호 없이 sudo를 실행할 수 있도록 /etc/sudoers.d
에 드롭인 파일을 생성하는 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
%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 """
[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]
사용자 지정을 사용할 수 없습니다.
5.16. 파티션 모드 지정
partitioning_mode
변수를 사용하여 빌드 중인 디스크 이미지를 파티션하는 방법을 선택합니다. 다음과 같은 지원되는 모드로 이미지를 사용자 지정할 수 있습니다.
-
auto-lvm
: 파일 시스템 사용자 지정이 하나 이상 없는 경우 원시 파티션 모드를 사용합니다. 이 경우 LVM 파티션 모드를 사용합니다. -
LVM
: 추가 마운트 지점이 없는 경우에도 LVM 파티션 모드를 사용합니다. -
raw
: 하나 이상의 마운트 지점이 있는 경우에도 원시 파티션을 사용합니다. 다음 사용자 지정을 사용하여
partitioning_mode
변수로 블루프린트를 사용자 지정할 수 있습니다.[customizations] partitioning_mode = "lvm"
[customizations] partitioning_mode = "lvm"
Copy to Clipboard Copied!
5.17. 사용자 정의 파일 시스템 구성 지정
블루프린트에서 사용자 지정 파일 시스템 구성을 지정하고 기본 레이아웃 구성 대신 특정 디스크 레이아웃으로 이미지를 생성할 수 있습니다. 블루프린트에서 기본값이 아닌 레이아웃 구성을 사용하면 다음과 같은 이점을 얻을 수 있습니다.
- 보안 벤치마크 준수
- 디스크 부족 오류로부터 보호
- 성능 개선
- 기존 설정과의 일관성
OSTree 이미지에는 읽기 전용과 같은 자체 마운트 규칙이 있으므로 OSTree 시스템은 파일 시스템 사용자 정의를 지원하지 않습니다. 다음 이미지 유형은 지원되지 않습니다.
-
image-installer
-
edge-installer
-
edge-simplified-installer
또한 이러한 이미지 유형이 분할된 운영 체제 이미지를 생성하지 않기 때문에 다음 이미지 유형은 파일 시스템 사용자 정의를 지원하지 않습니다.
-
edge-commit
-
edge-container
-
tar
-
container
9.4 이전의 릴리스 배포의 경우 블루프린트는 다음 마운트 지점
및 해당 하위 디렉터리를 지원합니다.
-
/
- 루트 마운트 지점 -
/var
-
/home
-
/opt
-
/srv
-
/usr
-
/app
-
/data
-
/tmp
RHEL 9.4 및 8.10 릴리스 이후 릴리스 배포에서는 운영 체제용으로 예약된 특정 경로를 제외하고 임의의 사용자 지정 마운트 지점을 지정할 수 있습니다.
다음 마운트 지점 및 해당 하위 디렉터리에 임의의 사용자 지정 마운트 지점을 지정할 수 없습니다.
-
/bin
-
/dev
-
/etc
-
/lib
-
/lib64
-
/lost+found
-
/proc
-
/run
-
/sbin
-
/sys
-
/sysroot
-
/var/lock
-
/var/run
/usr
사용자 지정 마운트 지점의 블루프린트에서 파일 시스템을 사용자 지정할 수 있지만 하위 디렉터리는 허용되지 않습니다.
마운트 지점 사용자 지정은 CLI를 사용하여 RHEL 9.0 이후 버전에서만 지원됩니다. 이전 배포에서는 루트
파티션을 마운트 지점으로만 지정하고 size
인수를 이미지 크기의 별칭으로 지정할 수 있습니다.
사용자 지정 이미지에 두 개 이상의 파티션이 있는 경우 LVM에 사용자 지정 파일 시스템 파티션으로 이미지를 생성하고 런타임 시 해당 파티션의 크기를 조정할 수 있습니다. 이렇게 하려면 블루프린트에서 사용자 지정 파일 시스템 구성을 지정하고 필요한 디스크 레이아웃을 사용하여 이미지를 생성할 수 있습니다. 기본 파일 시스템 레이아웃은 변경되지 않은 상태로 유지됩니다. 파일 시스템 사용자 정의 없이 일반 이미지를 사용하고 cloud-init
는 루트 파티션의 크기를 조정합니다.
블루프린트는 파일 시스템 사용자 지정을 LVM 파티션으로 자동 변환합니다.
사용자 지정 파일 블루프린트 사용자 지정을 사용하여 새 파일을 생성하거나 기존 파일을 교체할 수 있습니다. 지정한 파일의 상위 디렉터리가 있어야 합니다. 그렇지 않으면 이미지 빌드가 실패합니다. [customizations.directories]
사용자 지정에 상위 디렉터리가 있는지 확인합니다.
파일 사용자 정의를 다른 블루프린트 사용자 정의와 결합하면 다른 사용자 정의 기능에 영향을 주거나 현재 파일 사용자 정의를 재정의할 수 있습니다.
5.17.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
를 사용하는 경우 이미지 빌드에서 기존 디렉터리의 소유권 또는 권한을 변경하지 못합니다.
5.17.2. 블루프린트에 사용자 지정 디렉터리 지정
[customizations.directories]
블루프린트 사용자 지정을 사용하면 다음을 수행할 수 있습니다.
- 새 디렉토리를 만듭니다.
- 생성 중인 디렉터리에 대한 사용자 및 그룹 소유권을 설정합니다.
- 8진수 형식으로 디렉터리 모드 권한을 설정합니다.
- 필요에 따라 상위 디렉터리가 생성되었는지 확인합니다.
[customizations.files]
블루프린트 사용자 지정을 사용하면 다음을 수행할 수 있습니다.
- 새 텍스트 파일을 생성합니다.
- 기존 파일 수정. 경고: 기존 콘텐츠를 덮어쓸 수 있습니다.
- 생성 중인 파일에 대한 사용자 및 그룹 소유권을 설정합니다.
- 8진수 형식으로 모드 권한을 설정합니다.
다음 파일을 생성하거나 교체할 수 없습니다.
-
/etc/fstab
-
/etc/shadow
-
/etc/passwd
-
/etc/group
다음 사용자 지정을 사용할 수 있습니다.
블루프린트에서 파일 시스템 구성을 사용자 지정합니다.
[[customizations.filesystem]] mountpoint = "MOUNTPOINT" minsize = MINIMUM-PARTITION-SIZE
[[customizations.filesystem]] mountpoint = "MOUNTPOINT" minsize = MINIMUM-PARTITION-SIZE
Copy to Clipboard Copied! MINIMUM- Cryostat-SIZE
값은 기본 크기 형식이 없습니다. 블루프린트 사용자 지정은 kB에서 TB로, KiB에서 TiB까지의 다음 값과 단위를 지원합니다. 예를 들어 마운트 지점 크기를 바이트 단위로 정의할 수 있습니다.[[customizations.filesystem]] mountpoint = "/var" minsize = 1073741824
[[customizations.filesystem]] mountpoint = "/var" minsize = 1073741824
Copy to Clipboard Copied! 단위를 사용하여 마운트 지점 크기를 정의합니다. 예를 들면 다음과 같습니다.
[[customizations.filesystem]] mountpoint = "/opt" minsize = "20 GiB"
[[customizations.filesystem]] mountpoint = "/opt" minsize = "20 GiB"
Copy to Clipboard Copied! [[customizations.filesystem]] mountpoint = "/var" minsize = "1 GiB"
[[customizations.filesystem]] mountpoint = "/var" minsize = "1 GiB"
Copy to Clipboard Copied! minsize
를 설정하여 최소 파티션을 정의합니다. 예를 들면 다음과 같습니다.[[customizations.filesystem]] mountpoint = "/var" minsize = 2147483648
[[customizations.filesystem]] mountpoint = "/var" minsize = 2147483648
Copy to Clipboard Copied! [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
[[customizations.directories]] path = "/etc/directory_name" mode = "octal_access_permission" user = "user_string_or_integer" group = "group_string_or_integer" ensure_parents = boolean
Copy to Clipboard Copied! 블루프린트 항목은 다음과 같이 설명되어 있습니다.
-
경로
- 필수 - 생성하려는 디렉터리의 경로를 입력합니다./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!"
[[customizations.files]] path = "/etc/directory_name" mode = "octal_access_permission" user = "user_string_or_integer" group = "group_string_or_integer" data = "Hello world!"
Copy to Clipboard Copied! 블루프린트 항목은 다음과 같이 설명되어 있습니다.
-
path
- Mandatory - 생성하려는 파일의 경로를 입력합니다./etc
디렉토리 아래의 절대 경로여야 합니다. -
mode
Optional - 8진수 형식으로 파일에 대한 액세스 권한을 설정합니다. 권한을 지정하지 않으면 기본값은 0644입니다. 앞에 0은 선택 사항입니다. -
user
- Optional - 사용자를 파일의 소유자로 설정합니다. 사용자를 지정하지 않으면 기본값은root
입니다. 사용자를 문자열 또는 정수로 지정할 수 있습니다. -
group
- 선택 사항 - 그룹을 파일의 소유자로 설정합니다. 그룹을 지정하지 않으면 기본값은root
입니다. 그룹을 문자열 또는 정수로 지정할 수 있습니다. -
data
- 선택 사항 - 일반 텍스트 파일의 내용을 지정합니다. 콘텐츠를 지정하지 않으면 빈 파일이 생성됩니다.
-
5.18. 블루프린트에서 볼륨 그룹 및 논리 볼륨 이름 지정
다음 작업에 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"
[[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"
6장. RHEL 이미지 빌더 웹 콘솔 인터페이스를 사용하여 시스템 이미지 생성
RHEL 이미지 빌더는 사용자 정의 시스템 이미지를 생성하는 툴입니다. RHEL 이미지 빌더를 제어하고 사용자 정의 시스템 이미지를 생성하려면 웹 콘솔 인터페이스를 사용할 수 있습니다.
6.1. RHEL 웹 콘솔에서 RHEL 이미지 빌더 대시보드에 액세스
RHEL 웹 콘솔의 cockpit-image-builder 플러그인을 사용하면 그래픽 인터페이스를 사용하여 이미지 빌더 블루프린트를 관리하고 구성을 구성할 수 있습니다.
사전 요구 사항
- 시스템에 대한 root 액세스 권한이 있어야 합니다.
- RHEL 이미지 빌더가 설치되어 있어야 합니다.
-
cockpit-image-builder
패키지가 설치되어 있어야 합니다.
프로세스
-
호스트에서 웹 브라우저에서
\https://localhost:9090/
을 엽니다. - root 사용자로 웹 콘솔에 로그인합니다.
RHEL 이미지 빌더 컨트롤을 표시하려면 창의 왼쪽 상단에 있는
빌더 버튼을 클릭합니다.RHEL 이미지 빌더 대시보드가 열리고 기존 블루프린트가 나열됩니다(있는 경우).
6.2. 웹 콘솔 인터페이스에서 블루프린트 생성
블루프린트 생성은 사용자 지정된 RHEL 시스템 이미지를 생성하기 전에 필요한 단계입니다. 모든 사용자 지정은 선택 사항입니다.
사전 요구 사항
- 브라우저에서 웹 콘솔에서 RHEL 이미지 빌더 앱을 열었습니다. RHEL 웹 콘솔에서 RHEL 이미지 빌더 GUI 액세스를 참조하십시오.
프로세스
오른쪽 상단에 있는
을 클릭합니다.블루프린트 이름 및 설명에 대한 필드가 있는 대화 마법사가 열립니다.
세부 정보
페이지에서 다음을 수행합니다.- 블루프린트 이름 및 설명(선택 사항)을 입력합니다.
- 를 클릭합니다.
선택 사항:
패키지
페이지에서 다음을 수행합니다.-
사용
가능한 패키지 검색에서 패키지
이름을 입력합니다. - 다음 패키지 필드로 이동하려면 > 버튼을 클릭합니다.
- 이전 단계를 반복하여 원하는 만큼 패키지를 검색하고 포함합니다.
- 참고
이러한 사용자 지정은 별도로 지정하지 않는 한 모두 선택 사항입니다.
-
사용
-
커널
페이지에서 커널 이름과 명령줄 인수를 입력합니다. 파일 시스템
페이지에서자동 파티션 사용을
선택하거나 이미지 파일 시스템에 대한파티션을 수동으로 구성할
수 있습니다. 파티션을 수동으로 구성하려면 다음 단계를 완료합니다.수동으로
버튼을 클릭합니다.Configure partitions
섹션이 열리고 Red Hat 표준 및 보안 가이드를 기반으로 구성이 표시됩니다.드롭다운 메뉴에서 세부 정보를 제공하여 파티션을 구성합니다.
마운트 지점
필드의 경우 다음 마운트 지점 유형 옵션 중 하나를 선택합니다.-
/
- 루트 마운트 지점 -
/var
-
/home
-
/opt
-
/srv
-
/usr
-
/app
-
/data
-
/tmp
/usr/local
마운트 지점에
/tmp
와 같은 추가 경로를 추가할 수도 있습니다. 예: 접두사인/var
, 추가 경로인/tmp
는/var/tmp
가 됩니다.참고선택한 마운트 지점 유형에 따라 파일 시스템 유형이
xfs
로 변경됩니다.
-
파일 시스템의
최소 크기 파티션
필드의 경우 필요한 최소 파티션 크기를 입력합니다. Minimum size(최소 크기) 드롭다운 메뉴에서GiB
,MiB
또는KiB
와 같은 일반 크기 단위를 사용할 수 있습니다. 기본 단위는GiB
입니다.참고최소 크기는
RHEL 이미지 빌더가 여전히 파티션 크기를 늘릴 수 있음을 의미합니다. 작업 이미지를 생성할 수 없을 경우 파티션 크기를 늘릴 수 있습니다.
파티션을 추가하려면
버튼을 클릭합니다. 다음 오류 메시지가 표시되면파티션 중복: 각 마운트 지점에 있는 하나의 파티션만 생성할 수 있습니다. .
.- 버튼을 클릭하여 중복 파티션을 제거합니다.
- 만들 파티션의 새 마운트 지점을 선택합니다.
- 파티션 구성을 완료한 후 클릭합니다.
서비스
페이지에서 서비스를 활성화하거나 비활성화할 수 있습니다.- 활성화 또는 비활성화하려는 서비스 이름을 입력하여 쉼표로 구분하거나 키를 눌러 입력합니다. 를 클릭합니다.
방화벽
페이지에서 방화벽 설정을 설정합니다.-
포트
및 활성화 또는 비활성화하려는 방화벽 서비스를 입력합니다. - 버튼을 클릭하여 각 영역의 방화벽 규칙을 독립적으로 관리합니다. 를 클릭합니다.
-
사용자
페이지에서 다음 단계에 따라 사용자를 추가합니다.- 클릭합니다.
-
Username
,암호
,SSH 키를
입력합니다.서버 관리자
확인란을 클릭하여 사용자를 권한 있는 사용자로 표시할 수도 있습니다. 를 클릭합니다.
그룹
페이지에서 다음 단계를 완료하여 그룹을 추가합니다.-
그룹 이름과
를 입력합니다. 더 많은 그룹을 추가할 수 있습니다. 를 클릭합니다.그룹
ID
-
SSH 키 페이지에서 키를
추가합니다.- SSH 키를 입력합니다.
-
사용자를
입력합니다
. 를 클릭합니다.
시간대 페이지에서 시간대
설정을 설정합니다.시간대
필드에 시스템 이미지에 추가할 시간대를 입력합니다. 예를 들어 "US/Eastern" 시간대 형식을 추가합니다.시간대를 설정하지 않으면 시스템은 Universal Time, Coordinated (UTC)를 기본값으로 사용합니다.
-
NTP
서버를 입력합니다. 를 클릭합니다.
Locale
페이지에서 다음 단계를 완료합니다.-
시스템 이미지에 추가할 패키지 이름을 입력합니다.
예: ["en_US.UTF-8"].
-
Languages
검색 필드에 시스템 이미지에 추가할 패키지 이름을 입력합니다. 예: "us". 를 클릭합니다.
-
시스템 이미지에 추가할 패키지 이름을 입력합니다.
기타
페이지에서 다음 단계를 완료합니다.-
Hostname
필드에 시스템 이미지에 추가할 호스트 이름을 입력합니다. 호스트 이름을 추가하지 않으면 운영 체제가 호스트 이름을 결정합니다. -
Simplifier 설치 프로그램 이미지 전용 필수:
설치 장치
필드에서 시스템 이미지에 유효한 노드를 입력합니다. 예:dev/sda1
를 클릭합니다.
-
FIDO 이미지를 빌드하는 경우에만 필수:
FIDO 장치 온보딩
페이지에서 다음 단계를 완료하십시오.제조 서버 URL
필드에 다음 정보를 입력합니다.-
vmware
UN 공개 키 비보안
필드에 비보안 공개 키를 입력합니다. -
Please
UN 공개 키 해시
필드에 공개 키 해시를 입력합니다. -
Please
UN 공개 키 루트 인증서
필드에 공개 키 루트 인증서를 입력합니다. 를 클릭합니다.
-
vmware
OpenSCAP
페이지에서 다음 단계를 완료합니다.-
Datastream
필드에 시스템 이미지에 추가할datastream
수정 지침을 입력합니다. -
프로필 ID
필드에 시스템 이미지에 추가할profile_id
보안 프로필을 입력합니다. 를 클릭합니다.
-
Ignition 이미지를 빌드하는 경우에만 필수:
Ignition
페이지에서 다음 단계를 완료하십시오.-
Firstboot URL
필드에 시스템 이미지에 추가할 패키지 이름을 입력합니다. -
Cryo
stat 데이터
필드에서 파일을 드래그하거나 업로드합니다. 를 클릭합니다.
-
-
.
검토
페이지에서 블루프린트에 대한 세부 정보를 검토합니다. 을 클릭합니다.
RHEL 이미지 빌더 보기가 열리고 기존 블루프린트가 나열됩니다.
6.3. RHEL 이미지 빌더 웹 콘솔 인터페이스에서 블루프린트 가져오기
기존 블루프린트를 가져와서 사용할 수 있습니다. 시스템은 모든 종속 항목을 자동으로 해결합니다.
사전 요구 사항
- 브라우저에서 웹 콘솔에서 RHEL 이미지 빌더 앱을 열었습니다.
- RHEL 이미지 빌더 웹 콘솔 인터페이스에서 사용하기 위해 가져오려는 블루프린트가 있습니다.
프로세스
-
RHEL 이미지 빌더 대시보드에서
블루프린트 가져오기
마법사가 열립니다. 를 클릭합니다. -
Upload
필드에서 기존 블루프린트를 드래그하거나 업로드합니다. 이 블루프린트는TOML
또는JSON
형식일 수 있습니다. - 를 클릭합니다. 대시보드에는 가져온 블루프린트가 나열됩니다.
검증
가져온 블루프린트를 클릭하면 가져온 블루프린트에 대한 모든 사용자 지정이 있는 대시보드에 액세스할 수 있습니다.
가져온 블루프린트로 선택한 패키지를 확인하려면
패키지
탭으로 이동합니다.- 모든 패키지 종속 항목을 나열하려면 를 클릭합니다. 목록은 검색 가능하며 주문될 수 있습니다.
다음 단계
선택 사항: 사용자 지정을 수정하려면 다음을 수행합니다.
-
사용자 지정
대시보드에서 변경할 사용자 지정을 클릭합니다. 필요한 경우 클릭하여 사용 가능한 모든 사용자 지정 옵션으로 이동할 수 있습니다.
-
6.4. RHEL 이미지 빌더 웹 콘솔 인터페이스에서 블루프린트 내보내기
다른 시스템에서 사용자 지정을 사용하도록 블루프린트를 내보낼 수 있습니다. TOML
또는 JSON
형식으로 블루프린트를 내보낼 수 있습니다. 두 형식 모두 CLI 및 API 인터페이스에서도 작동합니다.
사전 요구 사항
- 브라우저에서 웹 콘솔에서 RHEL 이미지 빌더 앱을 열었습니다.
- 내보낼 블루프린트가 있습니다.
프로세스
- 이미지 빌더 대시보드에서 내보낼 블루프린트를 선택합니다.
-
블루프린트 내보내기
를 클릭합니다.블루프린트 내보내기
마법사가 열립니다. - 선택 사항: 버튼을 클릭하여 블루프린트를 복사합니다.
검증
- 텍스트 편집기에서 내보낸 블루프린트를 열어 검사하고 검토합니다.
6.5. 웹 콘솔 인터페이스에서 RHEL 이미지 빌더를 사용하여 시스템 이미지 생성
다음 단계를 완료하여 블루프린트에서 사용자 지정 RHEL 시스템 이미지를 생성할 수 있습니다.
사전 요구 사항
- 브라우저에서 웹 콘솔에서 RHEL 이미지 빌더 앱을 열었습니다.
- 블루프린트를 생성하셨습니다.
프로세스
- RHEL 이미지 빌더 대시보드에서 블루프린트 탭을 클릭합니다.
- 블루프린트 표에서 이미지를 빌드할 블루프린트를 찾습니다.
- 선택한 블루프린트 오른쪽에 있는 이미지 생성 마법사가 열립니다. 을 클릭합니다.
이미지 출력 페이지에서 다음 단계를 완료합니다.
- Select a 블루프린트 목록에서 원하는 이미지 유형을 선택합니다.
이미지 출력 유형 목록에서 원하는 이미지 출력 유형을 선택합니다.
선택한 이미지 유형에 따라 세부 정보를 추가해야 합니다.
- 를 클릭합니다.
검토 페이지에서 이미지 생성에 대한 세부 정보를 검토하고 이미지 생성을 클릭합니다.
이미지 빌드가 시작되고 완료하는 데 최대 20분이 걸립니다.
검증
이미지가 완료되면 다음을 수행할 수 있습니다.
이미지를 다운로드합니다.
- RHEL 이미지 빌더 대시보드에서 노드 옵션(밀리초) 메뉴 를 클릭하고 이미지 다운로드를 선택합니다.
이미지 로그를 다운로드하여 요소를 검사하고 문제가 있는지 확인합니다.
- RHEL 이미지 빌더 대시보드에서 노드 옵션(밀리초) 메뉴 를 클릭하고 로그 다운로드를 선택합니다.
7장. RHEL 이미지 빌더를 사용하여 부팅 ISO 설치 프로그램 이미지 생성
RHEL 이미지 빌더를 사용하여 부팅 가능한 ISO 설치 프로그램 이미지를 생성할 수 있습니다. 이러한 이미지는 루트 파일 시스템이 있는 .tar
파일로 구성됩니다. 부팅 가능한 ISO 이미지를 사용하여 베어 메탈 서버에 파일 시스템을 설치할 수 있습니다.
RHEL 이미지 빌더는 루트 파일 시스템을 포함하는 부팅 ISO를 생성하는 매니페스트를 빌드합니다. ISO 이미지를 생성하려면 image-installer 를 선택합니다. RHEL 이미지 빌더는 다음 콘텐츠를 사용하여 .tar
파일을 빌드합니다.
- 표준 Anaconda 설치 프로그램 ISO
- 임베디드 RHEL 시스템 tar 파일
- 최소한의 기본 요구 사항으로 커밋을 설치하는 기본 Kickstart 파일
생성된 설치 프로그램 ISO 이미지에는 베어 메탈 서버에 직접 설치할 수 있는 사전 구성된 시스템 이미지가 포함되어 있습니다.
7.1. RHEL 이미지 빌더 CLI를 사용하여 부팅 ISO 설치 프로그램 이미지 생성
RHEL 이미지 빌더 명령줄 인터페이스를 사용하여 사용자 지정 부팅 ISO 설치 프로그램 이미지를 생성할 수 있습니다. 결과적으로 이미지 빌더는 운영 체제용으로 설치할 수 있는 .tar
파일이 포함된 .iso
파일을 빌드합니다. .iso
파일은 Anaconda를 부팅하고 .tar
파일을 설치하여 시스템을 설정합니다. 하드 디스크에 생성된 ISO 이미지 파일을 사용하거나 HTTP 부팅 또는 USB 설치에서 가상 머신에서 부팅할 수 있습니다.
설치 프로그램(.iso
) 이미지 유형은 파티션 사용자 지정을 허용하지 않습니다. 파일 시스템 사용자 지정을 수동으로 구성하려고 하면 설치 프로그램 이미지에서 빌드한 모든 시스템에 적용되지 않습니다. RHEL 이미지 빌더 파일 시스템 사용자 지정으로 빌드된 ISO 이미지를 마운트하면 Kickstart에서 오류가 발생하고 설치가 자동으로 재부팅되지 않습니다. 자세한 내용은 이미지 빌더에서 생성한 RHEL ISO 설치 자동화 를 참조하십시오.
사전 요구 사항
- 이미지에 대한 블루프린트를 생성하고 사용자가 포함된 사용자로 사용자 지정하고 RHEL 이미지 빌더로 다시 푸시했습니다. 지원되는 블루프린트 사용자 지정을 참조하십시오.
프로세스
ISO 이미지를 생성합니다.
composer-cli compose start BLUEPRINT-NAME image-installer
# composer-cli compose start BLUEPRINT-NAME image-installer
Copy to Clipboard Copied! - 생성한 블루프린트의 이름이 있는 BLUEPRINT-NAME
image-installer 는 이미지 유형입니다.
작성 프로세스는 백그라운드에서 시작되고 구성의 UUID가 표시됩니다. 작성이 완료될 때까지 기다립니다. 이 작업은 몇 분 정도 걸릴 수 있습니다.
구성의 상태를 확인합니다.
*composer-cli compose status*
# *composer-cli compose status*
Copy to Clipboard Copied! 완료된 작성에는 FINISHED의 상태 값이 표시됩니다.
목록의 작성 내용을 UUID로 식별합니다.
*composer-cli compose list*
# *composer-cli compose list*
Copy to Clipboard Copied! 작성이 완료되면 생성된 이미지 파일을 현재 디렉터리로 다운로드합니다.
composer-cli compose image UUID
# composer-cli compose image UUID
Copy to Clipboard Copied! UUID 를 이전 단계에서 얻은 UUID 값으로 바꿉니다.
RHEL 이미지 빌더는
.tar
파일이 포함된.iso
파일을 빌드합니다..tar
파일은 운영 체제에 설치될 이미지입니다.iso는
Anaconda를 부팅하고.tar
파일을 설치하여 시스템을 설정하도록 설정됩니다.
다음 단계
이미지 파일을 다운로드한 디렉터리에서 다음을 수행합니다.
-
다운로드한
.iso
이미지를 찾습니다. ISO를 마운트합니다.
mount -o ro path_to_ISO /mnt
$ mount -o ro path_to_ISO /mnt
Copy to Clipboard Copied! /mnt/liveimg
파일을 찾을 수 있습니다..tar
.gz 디렉토리에서 .tar.tar
파일 콘텐츠를 나열합니다.tar ztvf /mnt/liveimg.tar.gz
$ tar ztvf /mnt/liveimg.tar.gz
Copy to Clipboard Copied!
7.2. GUI에서 RHEL 이미지 빌더를 사용하여 부팅 ISO 설치 프로그램 이미지 생성
RHEL 이미지 빌더 GUI를 사용하여 사용자 지정 부팅 ISO 설치 프로그램 이미지를 빌드할 수 있습니다. 결과 ISO 이미지 파일을 하드 디스크에 사용하거나 가상 시스템에서 부팅할 수 있습니다. 예를 들어 HTTP 부팅 또는 USB 설치에서는 다음과 같습니다.
설치 프로그램(.iso
) 이미지 유형은 파티션 사용자 지정을 허용하지 않습니다. 파일 시스템 사용자 지정을 수동으로 구성하려고 하면 설치 프로그램 이미지에서 빌드한 모든 시스템에 적용되지 않습니다. RHEL 이미지 빌더 파일 시스템 사용자 지정으로 빌드된 ISO 이미지를 마운트하면 Kickstart에서 오류가 발생하고 설치가 자동으로 재부팅되지 않습니다. 자세한 내용은 이미지 빌더에서 생성한 RHEL ISO 설치 자동화 를 참조하십시오.
사전 요구 사항
- 브라우저에서 웹 콘솔에서 RHEL 이미지 빌더 앱을 열었습니다.
- 이미지에 대한 블루프린트를 생성했습니다. 웹 콘솔 인터페이스에서 RHEL 이미지 빌더 블루프린트 생성을 참조하십시오.
프로세스
- RHEL 이미지 빌더 대시보드에서 이미지를 빌드하는 데 사용할 블루프린트를 찾습니다. 선택적으로 왼쪽 상단에 있는 검색 상자에 블루프린트 이름 또는 일부를 입력하고 를 클릭합니다.
블루프린트 오른쪽에서 해당
(이미지 만들기) 버튼을 클릭합니다.이미지 생성 마법사가 열립니다.
이미지 생성 대화 마법사에서 다음을 수행합니다.
-
이미지 유형 목록에서
"RHEL Installer (.iso)"
를 선택합니다. - 를 클릭합니다.
검토 탭에서 을 클릭합니다.
RHEL 이미지 빌더에서는 RHEL ISO 이미지 작성을 큐에 추가합니다.
프로세스가 완료되면 이미지 빌드 전체 상태를 확인할 수 있습니다. RHEL 이미지 빌더는 ISO 이미지를 생성합니다.
-
이미지 유형 목록에서
검증
이미지가 성공적으로 생성되면 해당 이미지를 다운로드할 수 있습니다.
-
다운로드를 클릭하여
"RHEL Installer(.iso)"
이미지를 시스템에 저장합니다. -
"RHEL Installer(.iso)"
이미지를 다운로드한 폴더로 이동합니다. -
다운로드한
.tar
이미지를 찾습니다. "RHEL Installer(.iso)"
이미지 콘텐츠를 추출합니다.tar -xf content.tar
$ tar -xf content.tar
Copy to Clipboard Copied!
7.3. 미디어에 부팅 가능한 ISO 설치 및 부팅
RHEL 이미지 빌더를 사용하여 베어 메탈 시스템에 생성한 부팅 가능한 ISO 이미지를 설치합니다.
사전 요구 사항
- RHEL 이미지 빌더를 사용하여 부팅 가능한 ISO 이미지를 생성하셨습니다.
- 부팅 가능한 ISO 이미지를 다운로드했습니다.
-
dd
도구를 설치했습니다. - ISO 이미지에 충분한 용량이 있는 USB 플래시 드라이브가 있습니다. 필요한 크기는 블루프린트에서 선택한 패키지에 따라 다르지만 최소 크기는 8GB입니다.
프로세스
dd
툴을 사용하여 부팅 가능한 ISO 이미지를 USB 드라이브에 직접 작성합니다. 예를 들면 다음과 같습니다.dd if=installer.iso of=/dev/sdX
dd if=installer.iso of=/dev/sdX
Copy to Clipboard Copied! 여기서
installer.iso
는 ISO 이미지 파일 이름이고/dev/sdX
는 USB 플래시 드라이브 장치 경로입니다.- 부팅하려는 컴퓨터의 USB 포트에 플래시 드라이브를 삽입합니다.
USB 플래시 드라이브에서 ISO 이미지를 부팅합니다.
설치 환경이 시작되면 기본 Red Hat Enterprise Linux 설치와 유사하게 설치를 수동으로 완료해야 할 수 있습니다.
8장. RHEL 이미지 빌더 OpenSCAP 통합을 사용하여 사전 강화된 이미지 생성
온프레미스 RHEL 이미지 빌더는 OpenSCAP 통합을 지원합니다. 이러한 통합을 통해 사전 강화된 RHEL 이미지를 생성할 수 있습니다. 블루프린트를 설정하면 다음 작업을 수행할 수 있습니다.
- 사전 정의된 보안 프로필 세트로 사용자 정의
- 패키지 세트 또는 애드온 파일 추가
- 환경에 더 적합한 선택한 플랫폼에 배포할 수 있는 사용자 지정 RHEL 이미지를 빌드합니다.
Red Hat은 현재 배포 지침을 충족할 수 있도록 시스템을 빌드할 때 선택할 수 있는 보안 강화 프로필의 정기적으로 업데이트된 버전을 제공합니다.
8.1. OpenSCAP 블루프린트 사용자 정의
블루프린트 사용자 지정에 대한 OpenSCAP 지원을 통해 특정 보안 프로필에 대한'scap-security-guide 콘텐츠에서 블루프린트를 생성한 다음 블루프린트를 사용하여 미리 강화된 자체 이미지를 빌드할 수 있습니다.
OpenSCAP을 사용하여 사용자 지정 블루프린트를 생성하려면 다음과 같은 상위 수준 단계를 수행해야 합니다.
- 마운트 지점을 수정하고 특정 요구 사항에 따라 파일 시스템 레이아웃을 구성합니다.
- 블루프린트에서 OpenSCAP 프로필을 선택합니다. 이렇게 하면 선택한 프로필에 따라 이미지 빌드 중에 수정을 트리거하도록 이미지가 구성됩니다. 또한 이미지 빌드 중에 OpenSCAP은 사전 부팅 부팅 수정을 적용합니다.
이미지 블루프린트에서 OpenSCAP
블루프린트 사용자 지정을 사용하려면 다음 정보를 제공해야 합니다.
-
datastream 수정 명령의
데이터 스트림
경로입니다.scap-security-guide
패키지의 데이터 스트림 파일은/usr/share/xml/scap/ssg/content/
디렉터리에 있습니다. -
필요한 보안 프로필의
profile_id
입니다.profile_id
필드의 값은 긴 양식과 짧은 양식을 모두 허용합니다. 예를 들어 다음과 같은 양식은 허용됩니다.cis
또는xccdf_org.ssgproject.content_profile_cis
. 자세한 내용은 RHEL 10에서 지원되는 SCAP 보안 가이드 프로필 을 참조하십시오.
다음 예제는 OpenSCAP
수정 단계가 있는 스니펫입니다.
[customizations.openscap] # If you want to use the data stream from the 'scap-security-guide' package # the 'datastream' key could be omitted. # datastream = "/usr/share/xml/scap/ssg/content/ssg-rhel10-ds.xml" profile_id = "xccdf_org.ssgproject.content_profile_cis"
[customizations.openscap]
# If you want to use the data stream from the 'scap-security-guide' package
# the 'datastream' key could be omitted.
# datastream = "/usr/share/xml/scap/ssg/content/ssg-rhel10-ds.xml"
profile_id = "xccdf_org.ssgproject.content_profile_cis"
명령을 사용하여 제공하는 보안 프로필 목록을 포함하여 scap-security-guide
패키지에서 SCAP
소스 데이터 스트림에 대한 자세한 내용을 확인할 수 있습니다.
oscap info /usr/share/xml/scap/ssg/content/ssg-rhel10-ds.xml
# oscap info /usr/share/xml/scap/ssg/content/ssg-rhel10-ds.xml
편의를 위해 OpenSCAP
툴은 scap-security-guide
데이터 스트림에서 사용 가능한 모든 프로필에 대한 강화 블루프린트를 생성할 수 있습니다.
예를 들어 명령은 다음과 같습니다.
oscap xccdf generate fix --profile=cis --fix-type=blueprint /usr/share/xml/scap/ssg/content/ssg-rhel10-ds.xml
# oscap xccdf generate fix --profile=cis --fix-type=blueprint /usr/share/xml/scap/ssg/content/ssg-rhel10-ds.xml
다음과 유사한 CIS 프로필에 대한 블루프린트를 생성합니다.
Blueprint for CIS Red Hat Enterprise Linux 10.0 Benchmark for Level 2 - Server Profile Description: This profile defines a baseline that aligns to the "Level 2 - Server" configuration from the Center for Internet Security® Red Hat Enterprise Linux 10 Benchmark™, v3.0.0, released 2023-10-30. This profile includes Center for Internet Security® Red Hat Enterprise Linux 10.0 CIS Benchmarks™ content. Profile ID: xccdf_org.ssgproject.content_profile_cis Benchmark ID: xccdf_org.ssgproject.content_benchmark_RHEL-10.0 Benchmark Version: 0.1.74 XCCDF Version: 1.2 If your hardening data stream is not part of the 'scap-security-guide' package provide the absolute path to it (from the root of the image filesystem). datastream = "/usr/share/xml/scap/ssg/content/ssg-xxxxx-ds.xml"
# Blueprint for CIS Red Hat Enterprise Linux 10.0 Benchmark for Level 2 - Server
# Profile Description:
# This profile defines a baseline that aligns to the "Level 2 - Server"
# configuration from the Center for Internet Security® Red Hat Enterprise
# Linux 10 Benchmark™, v3.0.0, released 2023-10-30.
# This profile includes Center for Internet Security®
# Red Hat Enterprise Linux 10.0 CIS Benchmarks™ content.
#
# Profile ID: xccdf_org.ssgproject.content_profile_cis
# Benchmark ID: xccdf_org.ssgproject.content_benchmark_RHEL-10.0
# Benchmark Version: 0.1.74
# XCCDF Version: 1.2
name = "hardened_xccdf_org.ssgproject.content_profile_cis"
description = "CIS Red Hat Enterprise Linux 10.0 Benchmark for Level 2 - Server"
version = "0.1.74"
[customizations.openscap]
profile_id = "xccdf_org.ssgproject.content_profile_cis"
# If your hardening data stream is not part of the 'scap-security-guide' package
# provide the absolute path to it (from the root of the image filesystem).
# datastream = "/usr/share/xml/scap/ssg/content/ssg-xxxxx-ds.xml"
[[customizations.filesystem]]
mountpoint = "/home"
size = 1073741824
[[customizations.filesystem]]
mountpoint = "/tmp"
size = 1073741824
[[customizations.filesystem]]
mountpoint = "/var"
size = 3221225472
[[customizations.filesystem]]
mountpoint = "/var/tmp"
size = 1073741824
[[packages]]
name = "aide"
version = "*"
[[packages]]
name = "libselinux"
version = "*"
[[packages]]
name = "audit"
version = "*"
[customizations.kernel]
append = "audit_backlog_limit=8192 audit=1"
[customizations.services]
enabled = ["auditd","crond","firewalld","systemd-journald","rsyslog"]
disabled = []
masked = ["nfs-server","rpcbind","autofs","bluetooth","nftables"]
이미지 강화를 위해 이 정확한 블루프린트 스니펫을 사용하지 마십시오. 이는 전체 프로필을 반영하지 않습니다. Red Hat은 scap-security-guide
패키지의 각 프로필에 대한 보안 요구 사항을 지속적으로 업데이트하고 구체화하므로 시스템에 제공된 데이터 스트림의 최신 버전을 사용하여 초기 템플릿을 항상 다시 생성하는 것이 좋습니다.
이제 블루프린트를 사용자 지정하거나 그대로 사용하여 이미지를 빌드할 수 있습니다.
RHEL 이미지 빌더는 블루프린트 사용자 지정을 기반으로 osbuild
단계에 필요한 구성을 생성합니다. 또한 RHEL 이미지 빌더에서는 이미지에 두 개의 패키지를 추가합니다.
-
OpenSCAP
-scanner
-OpenSCAP
툴. scap-security-guide
- 수정 및 평가 지침이 포함된 패키지입니다.참고이 패키지는 기본적으로 이미지에 설치되므로 수정 단계에서는 datastream에
scap-security-guide
패키지를 사용합니다. 다른 datastream을 사용하려면 필요한 패키지를 블루프린트에 추가하고oscap
구성에서 datastream의 경로를 지정합니다.
8.2. RHEL 이미지 빌더를 사용하여 사전 강화된 이미지 생성
OpenSCAP 및 RHEL 이미지 빌더 통합을 사용하면 특정 프로필의 준수로 사전 강화된 이미지를 생성할 수 있으며 VM 또는 베어 메탈 환경에 배포할 수 있습니다.
사전 요구 사항
-
root 사용자 또는
weldr
그룹의 멤버인 사용자로 로그인되어 있습니다. -
openscap
및scap-security-guide
패키지가 설치됩니다.
프로세스
OpenSCAP
툴 및scap-security-guide
콘텐츠를 사용하여 TOML 형식으로 강화 블루프린트를 생성하고 필요한 경우 수정합니다.oscap xccdf generate fix --profile=profileID --fix-type=blueprint_name.toml /usr/share/xml/scap/ssg/content/ssg-rhel10-ds.xml > cis.toml
# oscap xccdf generate fix --profile=profileID --fix-type=blueprint_name.toml /usr/share/xml/scap/ssg/content/ssg-rhel10-ds.xml > cis.toml
Copy to Clipboard Copied! profileID
를 시스템이 준수해야 하는 프로필 ID로 바꿉니다(예:cis
).composer-cli
툴을 사용하여 블루프린트를osbuild-composer
로 푸시합니다.composer-cli blueprints push blueprint_name.toml
# composer-cli blueprints push blueprint_name.toml
Copy to Clipboard Copied! 강화된 이미지 빌드를 시작합니다.
composer-cli compose start blueprint_name image_type
# composer-cli compose start blueprint_name image_type
Copy to Clipboard Copied! image_type
을 이미지 유형(예:qcow2
)으로 바꿉니다.이미지 빌드가 준비되면 배포에서 사전 강화된 이미지를 사용할 수 있습니다. 가상 머신 생성을 참조하십시오.
검증
사전 강화된 이미지를 배포한 후 구성 규정 준수 검사를 수행하여 이미지가 선택한 보안 프로필과 일치하는지 확인할 수 있습니다.
구성 규정 준수 스캔을 수행해도 시스템이 규정을 준수하는 것은 아닙니다. 자세한 내용은 구성 규정 준수 검사에서 참조하십시오.
8.3. RHEL 이미지 빌더를 사용하여 사전 강화된 이미지 사용자 정의
특정 규칙(예: 최소 암호 길이)에서 매개 변수를 변경하고, 다른 방식으로 적용되는 규칙을 제거하고, 추가 규칙을 선택하여 내부 정책을 구현하여 보안 프로필을 사용자 지정할 수 있습니다. 프로필을 사용자 지정하여 새 규칙을 정의할 수 없습니다.
해당 블루프린트에서 이미지를 빌드할 때 새 맞춤 프로필 ID를 사용하여 맞춤형 파일을 생성하여 이미지에 /usr/share/xml/osbuild-oscap-tailoring/tailoring.xml
으로 저장합니다. 새 프로필 ID에는 기본 프로필에 접미사로 추가된 _osbuild_tailoring
이 있습니다. 예를 들어 CIS(cis
) 기본 프로필을 사용하는 경우 프로필 ID는 xccdf_org.ssgproject.content_profile_cis_osbuild_tailoring
이 됩니다.
사전 요구 사항
-
root 사용자 또는
weldr
그룹의 멤버인 사용자로 로그인되어 있습니다. -
openscap
및scap-security-guide
패키지가 설치됩니다.
프로세스
선택한 프로필의 TOML 형식으로 강화 블루프린트를 생성합니다.
oscap xccdf generate fix --profile=profileID --fix-type=blueprint /usr/share/xml/scap/ssg/content/ssg-rhel10-ds.xml > profileID _tailored.toml
# oscap xccdf generate fix --profile=profileID --fix-type=blueprint /usr/share/xml/scap/ssg/content/ssg-rhel10-ds.xml > profileID _tailored.toml
Copy to Clipboard Copied! 사용자 지정 규칙 세트를 사용하여 맞춤형 섹션을 블루프린트에 추가합니다. 사용자 지정은 다른 규칙의 상태를 변경하지 않고 규칙을 선택하거나 선택 해제하여 사용자 지정이 기반으로 하는 프로필의 기본 선택 또는 선택되지 않은 규칙에만 영향을 미칩니다.
Blueprint for CIS Red Hat Enterprise Linux 10.0 Benchmark for Level 2 - Server ...
# Blueprint for CIS Red Hat Enterprise Linux 10.0 Benchmark for Level 2 - Server # ... [customizations.openscap.tailoring] selected = [ "xccdf_org.ssgproject.content_bind_crypto_policy" ] unselected = [ "grub2_password" ]
Copy to Clipboard Copied! composer-cli
툴을 사용하여 블루프린트를osbuild-composer
로 푸시합니다.composer-cli blueprints push _blueprintProfileID__tailored.toml
# composer-cli blueprints push _blueprintProfileID__tailored.toml
Copy to Clipboard Copied! 강화된 이미지 빌드를 시작합니다.
composer-cli compose start blueprintProfileID_ image_type
# composer-cli compose start blueprintProfileID_ image_type
Copy to Clipboard Copied! image_type
을 이미지 유형(예:qcow2
)으로 바꿉니다.이미지 빌드가 준비되면 배포에서 사전 강화된 이미지를 사용합니다.
검증
사전 강화된 이미지를 배포한 후 구성 규정 준수 검사를 수행하여 이미지가 선택한 보안 프로필에 일치하는지 확인할 수 있습니다.
구성 규정 준수 스캔을 수행해도 시스템이 규정을 준수하는 것은 아닙니다. 자세한 내용은 구성 규정 준수 검사에서 참조하십시오.
9장. RHEL 이미지 빌더를 사용하여 FIPS 모드 활성화
사용자 지정 이미지를 생성하고 FIPS 지원 RHEL 이미지를 부팅할 수 있습니다. 이미지를 작성하기 전에 블루프린트의 fips
지시문 값을 변경해야 합니다.
사전 요구 사항
-
root 사용자 또는
weldr
그룹의 멤버인 사용자로 로그인되어 있습니다.
프로세스
다음 콘텐츠를 사용하여 Tom의 Obvious, Minimal Language (TOML) 형식으로 일반 텍스트 파일을 만듭니다.
name = "system-fips-mode-enabled" description = "blueprint with FIPS enabled " version = "0.0.1" [customizations] fips = true [[customizations.user]] name = "admin" password = "admin" groups = ["users", "wheel"]
name = "system-fips-mode-enabled" description = "blueprint with FIPS enabled " version = "0.0.1" [customizations] fips = true [[customizations.user]] name = "admin" password = "admin" groups = ["users", "wheel"]
Copy to Clipboard Copied! 블루프린트를 RHEL 이미지 빌더 서버로 가져옵니다.
composer-cli blueprints push blueprint-name.toml
# composer-cli blueprints push blueprint-name.toml
Copy to Clipboard Copied! 기존 블루프린트를 나열하여 생성된 블루프린트를 성공적으로 가져오고 존재하는지 확인합니다.
composer-cli blueprints show blueprint-name
# composer-cli blueprints show blueprint-name
Copy to Clipboard Copied! 블루프린트 및 해당 종속 항목에 나열된 구성 요소 및 버전이 유효한지 확인합니다.
composer-cli blueprints depsolve blueprint-name
# composer-cli blueprints depsolve blueprint-name
Copy to Clipboard Copied! 사용자 지정 RHEL 이미지를 빌드합니다.
composer-cli compose start \ blueprint-name \ image-type \
# composer-cli compose start \ blueprint-name \ image-type \
Copy to Clipboard Copied! 이미지 상태를 확인합니다.
composer-cli compose status UUID FINISHED date blueprint-name blueprint-version image-type
# composer-cli compose status … $ UUID FINISHED date blueprint-name blueprint-version image-type …
Copy to Clipboard Copied! 이미지를 다운로드합니다.
composer-cli compose image UUID
# composer-cli compose image UUID
Copy to Clipboard Copied! RHEL 이미지 빌더는 이미지를 현재 디렉터리 경로로 다운로드합니다. UUID 번호와 이미지 크기가 다음과 같이 표시됩니다.
UUID-image-name.type: size MB
$ UUID-image-name.type: size MB
Copy to Clipboard Copied!
검증
- 블루프린트에서 구성한 사용자 이름과 암호를 사용하여 시스템 이미지에 로그인합니다.
FIPS 모드가 활성화되어 있는지 확인합니다.
cat /proc/sys/crypto/fips_enabled 1
$ cat /proc/sys/crypto/fips_enabled 1
Copy to Clipboard Copied!
10장. RHEL 이미지 빌더를 사용하여 KVM 게스트 이미지 준비 및 배포
RHEL 이미지 빌더를 사용하여 KVM(커널 기반 가상 시스템) 기반 하이퍼바이저에 배포할 수 있는 .qcow2
용도의 빌드를 생성합니다.
사용자 지정 KVM 게스트 이미지를 생성하려면 다음과 같은 고급 단계를 수행해야 합니다.
-
.qcow2
이미지의 블루프린트를 생성합니다. -
RHEL 이미지 빌더를 사용하여
.qcow2
이미지를 생성합니다. - KVM 게스트 이미지에서 가상 머신을 생성합니다.
10.1. RHEL 이미지 빌더를 사용하여 사용자 지정 KVM 게스트 이미지 생성
RHEL 이미지 빌더를 사용하여 사용자 지정 .qcow2
KVM 게스트 이미지를 생성할 수 있습니다. 다음 절차에서는 GUI의 단계를 설명하지만 CLI를 사용할 수도 있습니다.
사전 요구 사항
-
시스템에 액세스하려면
루트
또는weldr
그룹에 있어야 합니다. -
cockpit-image-builder
패키지가 설치되어 있습니다. - RHEL 시스템에서 웹 콘솔의 RHEL 이미지 빌더 대시보드를 열었습니다.
- 블루프린트를 생성했습니다. 웹 콘솔 인터페이스에서 블루프린트 생성을 참조하십시오.
프로세스
- 생성한 블루프린트 이름을 클릭합니다.
- Images 탭을 선택합니다.
- Create Image 를 클릭하여 사용자 지정 이미지를 생성합니다. 이미지 생성 창이 열립니다.
-
유형 드롭다운 메뉴 목록에서
QEMU Image(.qcow2)
를 선택합니다. - 인스턴스화할 때 이미지를 설정할 크기를 설정하고 생성 을 클릭합니다.
- 창 오른쪽 상단에 있는 작은 팝업에 이미지 생성이 큐에 추가되었음을 알립니다. 이미지 생성 프로세스가 완료되면 이미지 빌드 전체 상태가 표시됩니다.
검증
-
이동 경로 아이콘을 클릭하고 다운로드 옵션을 선택합니다. RHEL 이미지 빌더는 기본 다운로드 위치에서 KVM 게스트 이미지
.qcow2
파일을 다운로드합니다.
10.2. KVM 게스트 이미지에서 가상 머신 생성
RHEL 이미지 빌더에는 이미 cloud-init
가 설치 및 활성화되어 있습니다.
사전 요구 사항
-
RHEL 이미지 빌더를 사용하여
.qcow2
이미지를 생성했습니다. -
qemu-kvm
패키지가 시스템에 설치되어 있습니다. 시스템에서/dev/kvm
장치를 사용할 수 있는지 확인하고 BIOS에서 가상화 기능이 활성화되어 있는지 확인할 수 있습니다. -
libvirt
및virt-install
패키지가 시스템에 설치되어 있습니다. -
시스템에 설치된
xorriso
패키지에서 제공하는genisoimage
유틸리티가 있습니다.
프로세스
-
RHEL 이미지 빌더를 사용하여 생성한
.qcow2
이미지를/var/lib/libvirt/images/
디렉터리로 이동합니다. 예를 들어
cloudinitiso
디렉터리 를 생성하고 새로 생성된 이 디렉터리로 이동합니다.mkdir cloudinitiso cd cloudinitiso
$ mkdir cloudinitiso $ cd cloudinitiso
Copy to Clipboard Copied! meta-data
라는 파일을 생성합니다. 이 파일에 다음 정보를 추가합니다.instance-id: citest local-hostname: vmname
instance-id: citest local-hostname: vmname
Copy to Clipboard Copied! user-data
라는 파일을 생성합니다. 파일에 다음 정보를 추가합니다.#cloud-config user: admin password: password chpasswd: {expire: False} ssh_pwauth: True ssh_authorized_keys: - ssh-rsa AAA...fhHQ== your.email@example.com
#cloud-config user: admin password: password chpasswd: {expire: False} ssh_pwauth: True ssh_authorized_keys: - ssh-rsa AAA...fhHQ== your.email@example.com
Copy to Clipboard Copied! ssh_authorized_keys
는 SSH 공개 키입니다. SSH 공개 키는~/.ssh/id_rsa.pub\
에서 찾을 수 있습니다.genisoimage
유틸리티를 사용하여user-data
및meta-data
파일이 포함된 ISO 이미지를 생성합니다.genisoimage -output cloud-init.iso -volid cidata -joliet -rock user-data meta-data
# genisoimage -output cloud-init.iso -volid cidata -joliet -rock user-data meta-data I: -input-charset not specified, using utf-8 (detected in locale settings) Total translation table size: 0 Total rockridge attributes bytes: 331 Total directory bytes: 0 Path table size(bytes): 10 Max brk space used 0 183 extents written (0 MB)
Copy to Clipboard Copied! virt-install
명령을 사용하여 KVM 게스트 이미지에서 새 VM을 생성합니다. 4단계에서 생성한 ISO 이미지를 VM 이미지에 대한 첨부 파일로 포함합니다.virt-install \ --memory 4096 \ --vcpus 4 \ --name myvm \ --disk rhel-10-x86_64-kvm.qcow2,device=disk,bus=virtio,format=qcow2 \ --disk cloud-init.iso,device=cdrom \ --os-variant rhel 10 \ --virt-type kvm \ --graphics none \ --import
# virt-install \ --memory 4096 \ --vcpus 4 \ --name myvm \ --disk rhel-10-x86_64-kvm.qcow2,device=disk,bus=virtio,format=qcow2 \ --disk cloud-init.iso,device=cdrom \ --os-variant rhel 10 \ --virt-type kvm \ --graphics none \ --import
Copy to Clipboard Copied! - --graphics none - 헤드리스 RHEL 10 VM을 의미합니다.
- --vCPUs 4 - 4 가상 CPU를 사용한다는 것을 의미합니다.
- --memory 4096 - 4096MB의 RAM을 사용합니다.
VM 설치가 시작됩니다.
Starting install... Connected to domain mytestcivm ... [ OK ] Started Execute cloud user/final scripts. [ OK ] Reached target Cloud-init target. Red Hat Enterprise Linux 10 (Ootpa) Kernel 4.18.0-221.el8.x86_64 on an x86_64
Starting install... Connected to domain mytestcivm ... [ OK ] Started Execute cloud user/final scripts. [ OK ] Reached target Cloud-init target. Red Hat Enterprise Linux 10 (Ootpa) Kernel 4.18.0-221.el8.x86_64 on an x86_64
Copy to Clipboard Copied!
검증
부팅이 완료되면 VM에 텍스트 로그인 인터페이스가 표시됩니다. VM의 로컬 콘솔에 로그인하려면 user-data
파일의 세부 정보를 사용합니다.
-
사용자 이름으로
admin
을 입력하고 를 누릅니다. 암호로
password
를 입력하고 를 누릅니다.로그인 인증이 완료되면 CLI를 사용하여 VM에 액세스할 수 있습니다.
11장. 컨테이너를 레지스트리로 푸시하고 이미지에 포함
RHEL 이미지 빌더를 사용하면 OpenSCAP 툴을 사용하여 보안 강화 이미지를 빌드할 수 있습니다. 블루프린트의 컨테이너 사용자 지정 지원을 활용하여 컨테이너를 생성하고 생성한 이미지에 직접 포함할 수 있습니다.
11.1. 컨테이너에 이미지를 포함하는 블루프린트 사용자 정의
registry.access.redhat.com 레지스트리의 컨테이너를 포함하려면 블루프린트에 컨테이너 사용자 지정을 추가해야 합니다. 예를 들면 다음과 같습니다.
[[containers]] source = "registry.access.redhat.com/ubi10/ubi:latest" name = "local-name" tls-verify = true
[[containers]]
source = "registry.access.redhat.com/ubi10/ubi:latest"
name = "local-name"
tls-verify = true
-
Source
- 필수 필드입니다. 레지스트리의 컨테이너 이미지에 대한 참조입니다. 이 예에서는registry.access.redhat.com
레지스트리를 사용합니다. 태그 버전을 지정할 수 있습니다. 기본 태그 버전은latest
입니다. -
name
- 로컬 레지스트리에 있는 컨테이너의 이름입니다. tls-verify
- 부울 필드.tls-verify
부울 필드는 전송 계층 보안을 제어합니다. 기본값은true
입니다.RHEL 이미지 빌더는 이미지 빌드 중에 컨테이너를 가져와서 컨테이너에 이미지에 저장합니다. 기본 로컬 컨테이너 스토리지 위치는 이미지 유형에 따라 달라지므로 Podman과 같은
container-tools
를 모두 지원할 수 있습니다. 포함된 컨테이너는 시작되지 않습니다. 보호된 컨테이너 리소스에 액세스하려면containers-auth.json
파일을 사용할 수 있습니다.
11.2. 컨테이너 레지스트리 인증 정보
osbuild-worker@.service
는 여러 서비스 인스턴스를 시작할 수 있는 템플릿 서비스입니다. 기본적으로 osbuild-composer
서비스는 항상 하나의 로컬 osbuild-worker
, 특히 osbuild-worker@1.service
로 시작합니다. osbuild-worker
서비스는 컨테이너 레지스트리와의 통신을 담당합니다. 서비스를 활성화하려면 /etc/osbuild-worker/osbuild-worker.toml
구성 파일을 설정합니다.
os build-worker/osbuild-worker.toml
구성 파일을 설정한 후에는 osbuild-worker
서비스가 시작되는 동안 osbuild-worker /osbuild-worker.toml
구성 파일을 한 번만 읽기 때문에 osbuild-worker
.toml 서비스를 다시 시작해야 합니다.
서비스 인스턴스를 중지하려면 다음 명령을 사용하여 systemd 서비스를 다시 시작합니다.
systemctl restart osbuild-worker@*
$ systemctl restart osbuild-worker@*
이를 통해 osbuild-worker
의 시작된 모든 인스턴스, 특히 실행
중인 유일한 서비스를 다시 시작합니다.
/etc/osbuild-worker/osbuild-worker.toml
구성 파일에는 보호된 리소스에 액세스하는 데 사용할 containers-auth.json
파일의 경로를 참조하는 문자열인 auth_field_path
항목이 있는 containers 섹션이 있습니다. 컨테이너 레지스트리 인증 정보는 컨테이너를 이미지에 포함할 때 레지스트리에서 컨테이너 이미지를 가져오는 데만 사용됩니다.
예를 들면 다음과 같습니다.
[containers] auth_file_path = "/etc/osbuild-worker/containers-auth.json"
[containers]
auth_file_path = "/etc/osbuild-worker/containers-auth.json"
11.3. 컨테이너 아티팩트를 컨테이너 레지스트리로 직접 푸시
RHEL 이미지 빌더 CLI를 사용하여 RHEL for Edge 컨테이너 이미지와 같은 컨테이너 아티팩트를 컨테이너 레지스트리로 직접 푸시할 수 있습니다.
사전 요구 사항
-
quay.io 레지스트리에 액세스합니다. 이 예에서는
quay.io
컨테이너 레지스트리를 대상 레지스트리로 사용하지만 선택한 컨테이너 레지스트리를 사용할 수 있습니다.
프로세스
registry-config.toml
파일을 설정하여 컨테이너 공급자를 선택합니다. 인증 정보는 선택 사항입니다.provider = "container_provider" [settings] tls_verify = false username = "admin" password = "your_password"
provider = "container_provider" [settings] tls_verify = false username = "admin" password = "your_password"
Copy to Clipboard Copied! .toml
형식으로 블루프린트를 생성합니다. 이 블루프린트는nginx
패키지를 블루프린트에 설치하는 컨테이너의 블루프린트입니다.name = "simple-container" description = "Simple RHEL container" version = "0.0.1" [[packages]] name = "nginx" version = "*"
name = "simple-container" description = "Simple RHEL container" version = "0.0.1" [[packages]] name = "nginx" version = "*"
Copy to Clipboard Copied! 블루프린트를 푸시합니다.
composer-cli blueprints push blueprint.toml
# composer-cli blueprints push blueprint.toml
Copy to Clipboard Copied! 레지스트리와 리포지토리를 인수로
composer-cli
툴에 전달하여 컨테이너 이미지를 빌드합니다.composer-cli compose start simple-container container "quay.io:8080/osbuild/repository" registry-config.toml
# composer-cli compose start simple-container container "quay.io:8080/osbuild/repository" registry-config.toml
Copy to Clipboard Copied! - simple-container - 블루프린트 이름입니다.
- container - 이미지 유형입니다.
"Quay.io:8080/osbuild/리포지토리" -
quay.io
는 대상 레지스트리이며osbuild
는 조직이며,리포지토리
는 빌드를 완료할 때 컨테이너를 내보낼 위치입니다. 선택적으로태그를
설정할 수 있습니다.:tag
에 대한 값을 설정하지 않으면 기본적으로:latest
태그를 사용합니다.참고사용자 지정 패키지의 종속성을 해결하기 때문에 컨테이너 이미지를 빌드하는 데 시간이 걸립니다.
- 이미지 빌드가 완료되면 생성된 컨테이너는 quay.io 에서 사용할 수 있습니다.
검증
quay.io 를 열고
리포지토리 태그
를 클릭합니다.You can see details about the container you created, such as: - last modified - image size - the `manifest ID`, that you can copy to the clipboard.
You can see details about the container you created, such as: - last modified - image size - the `manifest ID`, that you can copy to the clipboard.
Copy to Clipboard Copied! -
컨테이너를 포함할 이미지를 빌드할
매니페스트 ID
값을 복사합니다.
11.4. 이미지 빌드 및 컨테이너 이미지 가져오기
컨테이너 이미지를 생성한 후 사용자 지정 이미지를 빌드하고 컨테이너 이미지를 가져올 수 있습니다. 이를 위해 블루프린트에 컨테이너 사용자 지정을 지정하고 최종 이미지의 컨테이너 이름을 지정해야 합니다. 빌드 프로세스 중에 컨테이너 이미지를 가져와서 로컬 Podman 컨테이너 스토리지에 배치됩니다.
사전 요구 사항
-
컨테이너 이미지를 생성하여 로컬
quay.io
컨테이너 레지스트리 인스턴스로 푸시했습니다. 컨테이너 아티팩트를 컨테이너 레지스트리로 직접 푸시를 참조하십시오. - registry.access.redhat.com 에 액세스할 수 있습니다.
-
컨테이너
매니페스트 ID
가 있습니다. -
qemu-kvm
및qemu-img
패키지가 설치되어 있습니다.
프로세스
블루프린트를 생성하여
qcow2
이미지를 빌드합니다. 블루프린트에는 "" 사용자 지정이 포함되어야 합니다.name = "image" description = "A qcow2 image with a container" version = "0.0.1" distro = "rhel-10" [[packages]] name = "podman" version = "*" [[containers]] source = "registry.access.redhat.com/ubi10:8080/osbuild/container/container-image@sha256:manifest-ID-from-Repository-tag: tag-version" name = "source-name" tls-verify = true
name = "image" description = "A qcow2 image with a container" version = "0.0.1" distro = "rhel-10" [[packages]] name = "podman" version = "*" [[containers]] source = "registry.access.redhat.com/ubi10:8080/osbuild/container/container-image@sha256:manifest-ID-from-Repository-tag: tag-version" name = "source-name" tls-verify = true
Copy to Clipboard Copied! 블루프린트를 푸시합니다.
composer-cli blueprints push blueprint-image.toml
# composer-cli blueprints push blueprint-image.toml
Copy to Clipboard Copied! 컨테이너 이미지를 빌드합니다.
composer-cli start compose image qcow2
# composer-cli start compose image qcow2
Copy to Clipboard Copied! - 이미지는 블루프린트 이름입니다.
qcow2
는 이미지 유형입니다.참고이미지를 빌드하는 데는
quay.io
레지스트리에서 컨테이너를 검사하기 때문에 시간이 걸립니다.
구성의 상태를 확인하려면 다음을 수행합니다.
composer-cli compose status
# composer-cli compose status
Copy to Clipboard Copied! 완료된 작성에는 FINISHED 상태 값이 표시됩니다. 목록에서 작성을 확인하려면 해당 UUID를 사용합니다.
작성 프로세스가 완료되면 결과 이미지 파일을 기본 다운로드 위치로 다운로드합니다.
composer-cli compose image UUID
# composer-cli compose image UUID
Copy to Clipboard Copied! UUID를 이전 단계에 표시된 UUID 값으로 바꿉니다.
생성하고 다운로드한
qcow2
이미지를 사용하여 VM을 생성할 수 있습니다.
검증
다운로드한 결과 qcow2
이미지에서 다음 단계를 수행합니다.
-
VM에서
qcow2
이미지를 시작합니다. KVM 게스트 이미지에서 가상 머신 생성을 참조하십시오. qemu
마법사가 열립니다.qcow2
이미지에 로그인합니다.-
사용자 이름과 암호를 입력합니다. 이는 "customizations.user" 섹션의
.qcow2
블루프린트에 설정한 사용자 이름과 암호이거나cloud-init
를 사용하여 부팅 시 생성할 수 있습니다.
-
사용자 이름과 암호를 입력합니다. 이는 "customizations.user" 섹션의
컨테이너 이미지를 실행하고 컨테이너 내에서 쉘 프롬프트를 엽니다.
podman run -it registry.access.redhat.com/ubi10:8080/osbuild/repository /bin/bash/
# podman run -it registry.access.redhat.com/ubi10:8080/osbuild/repository /bin/bash/
Copy to Clipboard Copied! registry.access.redhat.com
은 대상 레지스트리이며osbuild
는 조직이며리포지토리
는 빌드를 완료할 때 컨테이너를 푸시할 위치입니다.블루프린트에 추가한 패키지를 사용할 수 있는지 확인합니다.
type -a nginx
# type -a nginx
Copy to Clipboard Copied! 출력에
nginx
패키지 경로가 표시됩니다.
12장. RHEL 이미지 빌더를 사용하여 클라우드 이미지 준비 및 업로드
RHEL 이미지 빌더는 다양한 클라우드 플랫폼에서 사용할 준비가 된 사용자 정의 시스템 이미지를 생성할 수 있습니다. 클라우드에서 사용자 지정 RHEL 시스템 이미지를 사용하려면 선택한 출력 유형을 사용하여 RHEL 이미지 빌더로 시스템 이미지를 생성하고, 이미지를 업로드하도록 시스템을 구성하고, 이미지를 클라우드 계정에 업로드합니다.
RHEL 웹 콘솔의 이미지 빌더 애플리케이션을 통해 사용자 지정 이미지
클라우드를 푸시할 수 있으며, AWS 및 Microsoft Azure 클라우드와 같이 당사가 지원하는 서비스 공급자 서브 세트에 사용할 수 있습니다.
13장. AWS에 AMI 이미지 준비 및 업로드
사용자 지정 이미지를 생성하여 RHEL 이미지 빌더를 사용하여 수동으로 또는 자동으로 AWS 클라우드로 업데이트할 수 있습니다.
13.1. AWS AMI 이미지 수동 업로드 준비
AWS AMI 이미지를 업로드하기 전에 이미지를 업로드하는 시스템을 구성해야 합니다.
사전 요구 사항
- AWS IAM 계정 관리자에 Access Key ID가 구성되어 있어야 합니다.
- 쓰기 가능한 S3 버킷 이 준비되어 있어야 합니다.
프로세스
Python 3 및
pip
툴을 설치합니다.*dnf install python3 python3-pip*
# *dnf install python3 python3-pip*
Copy to Clipboard Copied! pip
:을 사용하여 AWS 명령줄 툴 을 설치합니다.pip3 install awscli
# pip3 install awscli
Copy to Clipboard Copied! 프로필을 설정합니다. 터미널에 인증 정보, 지역 및 출력 형식을 제공하라는 메시지가 표시됩니다.
aws configure
$ aws configure AWS Access Key ID [None]: AWS Secret Access Key [None]: Default region name [None]: Default output format [None]:
Copy to Clipboard Copied! 버킷 이름을 정의하고 버킷을 생성합니다.
BUCKET=bucketname aws s3 mb s3://$BUCKET
$ BUCKET=bucketname $ aws s3 mb s3://$BUCKET
Copy to Clipboard Copied! 버킷 이름을
실제 버킷 이름으로 교체합니다. 전역적으로 고유한 이름이어야 합니다. 결과적으로 버킷이 생성됩니다.S3 버킷에 액세스할 수 있는 권한을 부여하려면 이전에는 AWS Identity and Access Management(IAM)에서
vmimport
S3 역할을 생성합니다.신뢰 정책 구성을 사용하여 JSON 형식으로
trust-policy.json
파일을 생성합니다. 예를 들면 다음과 같습니다.{ "Version": "2022-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "vmie.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:Externalid": "vmimport" } } }] }
{ "Version": "2022-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "vmie.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:Externalid": "vmimport" } } }] }
Copy to Clipboard Copied! 역할 정책 구성을 사용하여 JSON 형식으로
role-policy.json
파일을 생성합니다. 예를 들면 다음과 같습니다.{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": ["s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket"], "Resource": ["arn:aws:s3:::%s", "arn:aws:s3:::%s/"] }, { "Effect": "Allow", "Action": ["ec2:ModifySnapshotAttribute", "ec2:CopySnapshot", "ec2:RegisterImage", "ec2:Describe"], "Resource": "*" }] } $BUCKET $BUCKET
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": ["s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket"], "Resource": ["arn:aws:s3:::%s", "arn:aws:s3:::%s/"] }, { "Effect": "Allow", "Action": ["ec2:ModifySnapshotAttribute", "ec2:CopySnapshot", "ec2:RegisterImage", "ec2:Describe"], "Resource": "*" }] } $BUCKET $BUCKET
Copy to Clipboard Copied! trust-policy.json
파일을 사용하여 Amazon Web Services 계정에 대한 역할을 생성합니다.aws iam create-role --role-name vmimport --assume-role-policy-document file://trust-policy.json
$ aws iam create-role --role-name vmimport --assume-role-policy-document file://trust-policy.json
Copy to Clipboard Copied! role-policy.json
파일을 사용하여 인라인 정책 문서를 삽입합니다.aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document file://role-policy.json
$ aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document file://role-policy.json
Copy to Clipboard Copied!
13.2. CLI를 사용하여 AWS에 AMI 이미지를 수동으로 업로드
RHEL 이미지 빌더를 사용하여 CLI를 사용하여 ami
이미지를 빌드하고 수동으로 Amazon AWS Cloud 서비스 공급자에 직접 업로드할 수 있습니다.
프로세스
텍스트 편집기를 사용하여 다음 내용으로 구성 파일을 생성합니다.
provider = "aws" [settings] accessKeyID = "AWS_ACCESS_KEY_ID" secretAccessKey = "AWS_SECRET_ACCESS_KEY" bucket = "AWS_BUCKET" region = "AWS_REGION" key = "IMAGE_KEY"
provider = "aws" [settings] accessKeyID = "AWS_ACCESS_KEY_ID" secretAccessKey = "AWS_SECRET_ACCESS_KEY" bucket = "AWS_BUCKET" region = "AWS_REGION" key = "IMAGE_KEY"
Copy to Clipboard Copied! 필드의 값을
accessKeyID
,secretAccessKey
,버킷
에 대한 인증 정보로바꿉니다
.IMAGE_KEY
값은 EC2에 업로드할 VM 이미지의 이름입니다.- 파일을 CONFIGURATION-FILE.toml로 저장하고 텍스트 편집기를 종료합니다.
작성을 시작하여 AWS에 업로드합니다.
composer-cli compose start blueprint-name image-type image-key configuration-file.toml
# composer-cli compose start blueprint-name image-type image-key configuration-file.toml
Copy to Clipboard Copied! 교체:
- 생성한 블루프린트의 이름이 있는 블루프린트- 이름
-
ami
이미지 유형이 있는 이미지 유형. - EC2에 업로드할 VM 이미지의 이름이 있는 이미지 키 입니다.
클라우드 공급자의 구성 파일 이름이 있는 configuration-file.toml.
참고사용자 지정 이미지를 보낼 버킷에 대한 올바른 AWS IAM(Identity and Access Management) 설정이 있어야 합니다. 이미지를 업로드하려면 먼저 버킷에 정책을 설정해야 합니다.
이미지 빌드 상태를 확인합니다.
composer-cli compose status
# composer-cli compose status
Copy to Clipboard Copied! 이미지 업로드 프로세스가 완료되면 "FINISHED" 상태가 표시됩니다.
검증
이미지 업로드에 성공했는지 확인하려면 다음을 수행하십시오.
-
메뉴에서 EC2 에 액세스하고 AWS 콘솔에서 올바른 리전을 선택합니다. 이미지가 성공적으로 업로드되었음을 나타내기 위해
사용 가능한
상태가 있어야 합니다. - 대시보드에서 이미지를 선택하고 클릭합니다.
13.3. AWS Cloud AMI에 이미지 생성 및 자동 업로드
RHEL 이미지 빌더를 사용하여 (.raw)
이미지를 생성하고 AWS에 업로드 확인란을 선택하여 Amazon AWS Cloud AMI 서비스 공급자에 직접 생성하는 출력 이미지를 자동으로 푸시할 수 있습니다.
사전 요구 사항
-
시스템에 대한
root
또는wheel
그룹 사용자 액세스 권한이 있어야 합니다. - 브라우저에서 RHEL 웹 콘솔의 RHEL 이미지 빌더 인터페이스를 열었습니다.
- 블루프린트를 생성했습니다. 웹 콘솔 인터페이스에서 블루프린트 생성을 참조하십시오.
- AWS IAM 계정 관리자에 Access Key ID가 구성되어 있어야 합니다.
- 쓰기 가능한 S3 버킷 이 준비되어 있어야 합니다.
프로세스
- RHEL 이미지 빌더 대시보드에서 이전에 생성한 블루프린트 이름을 클릭합니다.
- 탭을 선택합니다.
이미지 생성 창이 열립니다.
-
유형 드롭다운 메뉴 목록에서
Amazon Machine Image Disk (.raw)
를 선택합니다. - Upload to AWS (AWS에 업로드) 확인란을 선택하여 이미지를 AWS Cloud에 업로드하고 를 클릭합니다.
AWS에 대한 액세스를 인증하려면 해당 필드에
AWS 액세스 키 ID
및AWS 시크릿 액세스 키를
입력합니다. 를 클릭합니다.참고새 액세스 키 ID를 생성하는 경우에만 AWS 시크릿 액세스 키를 볼 수 있습니다. 시크릿 키를 모르는 경우 새 액세스 키 ID를 생성합니다.
-
이미지 이름 필드에
이미지 이름을
입력하고 AmazonS3 버킷 이름 필드에 Amazon 버킷 이름을
입력하고 사용자 지정 이미지를 추가할 버킷의AWS 리전
필드를 입력합니다. 를 클릭합니다. 정보를 검토하고
을 클릭합니다.필요한 경우
를 클릭하여 잘못된 세부 정보를 수정합니다.참고사용자 지정 이미지를 보낼 버킷에 대한 올바른 IAM 설정이 있어야 합니다. 이 절차에서는 IAM 가져오기 및 내보내기를 사용하므로 이미지를 업로드하기 전에 버킷에 정책을 설정해야 합니다. 자세한 내용은 IAM 사용자의 필수 권한을 참조하십시오.
-
유형 드롭다운 메뉴 목록에서
오른쪽 상단에 있는 팝업에 저장 진행 상황을 알려줍니다. 또한 이미지 생성이 시작되어 이 이미지 생성 진행 상황 및 AWS Cloud에 업로드되었음을 알립니다.
프로세스가 완료되면 이미지 빌드 전체 상태를 확인할 수 있습니다.
브라우저에서 Service CryostatEC2 에 액세스합니다.
-
AWS 콘솔 대시보드 메뉴에서 올바른 리전 을 선택합니다. 이미지가 업로드되었음을 나타내기 위해
Available
상태가 있어야 합니다. - AWS 대시보드에서 이미지를 선택하고 클릭합니다.
-
AWS 콘솔 대시보드 메뉴에서 올바른 리전 을 선택합니다. 이미지가 업로드되었음을 나타내기 위해
- 새 창이 열립니다. 이미지를 시작하는 데 필요한 리소스에 따라 인스턴스 유형을 선택합니다. 클릭합니다.
- 인스턴스 시작 세부 정보를 검토합니다. 변경해야 하는 경우 각 섹션을 편집할 수 있습니다. 시작을 클릭합니다
인스턴스를 시작하기 전에 공개 키를 선택하여 액세스합니다.
이미 있는 키 쌍을 사용하거나 새 키 쌍을 만들 수 있습니다.
다음 단계에 따라 EC2에 새 키 쌍을 생성하여 새 인스턴스에 연결합니다.
- 드롭다운 메뉴 목록에서 새 키 쌍 만들기 를 선택합니다.
- 새 키 쌍의 이름을 입력합니다. 새 키 쌍을 생성합니다.
- 로컬 시스템에 새 키 쌍을 저장하려면 Download Key Pair 를 클릭합니다.
그런 다음
인스턴스를 시작할 수 있습니다.Initializing 으로 표시되는 인스턴스의 상태를 확인할 수 있습니다.
- 인스턴스 상태가 실행 중 이면 버튼을 사용할 수 있게 됩니다.
- 에 대한 기본 연결 방법으로 독립 실행형 SSH 클라이언트를 선택하고 터미널을 엽니다.
개인 키를 저장하는 위치에서 SSH가 작동하도록 키를 공개적으로 볼 수 있는지 확인합니다. 이렇게 하려면 다음 명령을 실행합니다.
*chmod 400 _your-instance-name.pem_*
$ *chmod 400 _your-instance-name.pem_*
Copy to Clipboard Copied! 공용 DNS를 사용하여 인스턴스에 연결합니다.
*ssh -i _your-instance-name.pem_ ec2-user@_your-instance-IP-address_*
$ *ssh -i _your-instance-name.pem_ ec2-user@_your-instance-IP-address_*
Copy to Clipboard Copied! yes
를 입력하여 계속 연결할지 확인합니다.결과적으로 SSH를 통해 인스턴스에 연결됩니다.
검증
- SSH를 사용하여 인스턴스에 연결하는 동안 작업을 수행할 수 있는지 확인합니다.
14장. Microsoft Azure에 VHD 이미지 준비 및 업로드
사용자 지정 이미지를 생성하고 RHEL 이미지 빌더를 사용하여 수동으로 또는 자동으로 Microsoft Azure 클라우드로 업데이트할 수 있습니다.
14.1. Microsoft Azure VHD 이미지를 수동으로 업로드하기 위한 준비
Microsoft Azure
클라우드에 수동으로 업로드할 수 있는 VHD 이미지를 생성하려면 RHEL 이미지 빌더를 사용할 수 있습니다.
사전 요구 사항
- Microsoft Azure 리소스 그룹 및 스토리지 계정이 있어야 합니다.
-
Python이 설치되어 있어야 합니다.
AZ CLI
툴은 python에 따라 다릅니다.
프로세스
Microsoft 리포지토리 키를 가져옵니다.
*sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc*
$ *sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc*
Copy to Clipboard Copied! 다음 정보를 사용하여 로컬
azure-cli.repo
리포지토리를 생성합니다.azure-cli.repo
리포지토리를/etc/yum.repos.d/
아래에 저장합니다.[azure-cli] name=Azure CLI baseurl=https://packages.microsoft.com/yumrepos/vscode enabled=1 gpgcheck=1 gpgkey=https://packages.microsoft.com/keys/microsoft.asc
[azure-cli] name=Azure CLI baseurl=https://packages.microsoft.com/yumrepos/vscode enabled=1 gpgcheck=1 gpgkey=https://packages.microsoft.com/keys/microsoft.asc
Copy to Clipboard Copied! Install Microsoft Azure CLI. Microsoft Azure CLI 패키지의 다운로드된 버전은 현재 사용 가능한 버전에 따라 다를 수 있습니다.
sudo dnf downloader azure-cli sudo rpm -ivh --nodeps azure-cli-2.0.64-1.el7.x86_64.rpm
$ sudo dnf downloader azure-cli $ sudo rpm -ivh --nodeps azure-cli-2.0.64-1.el7.x86_64.rpm
Copy to Clipboard Copied! Run Microsoft Azure CLI:
az login
$ az login
Copy to Clipboard Copied! 터미널에는 다음 메시지가 표시됩니다
참고, 로그인할 수 있도록 브라우저를 시작했습니다. 장치 코드에 대한 이전 환경의 경우 "az login --use-device-code
를 사용하십시오. 그런 다음 터미널은 로그인할 수 있는 "https://microsoft.com/devicelogin"에 대한 링크가 있는 브라우저를 엽니다.참고원격(SSH) 세션을 실행하는 경우 브라우저에서 로그인 페이지 링크가 열려 있지 않습니다. 이 경우 브라우저에 대한 링크를 복사하고 로그인하여 원격 세션을 인증할 수 있습니다. 로그인하려면 웹 브라우저를 사용하여 "https://microsoft.com/devicelogin" 페이지를 열고 인증할 장치 코드를 입력합니다.
Microsoft Azure의 스토리지 계정 키를 나열하고 이전 명령의 출력에서 값
key1
을 기록합니다.az storage account keys list --resource-group resource-group-name --account-name account-name
$ az storage account keys list --resource-group resource-group-name --account-name account-name
Copy to Clipboard Copied! resource-group-name
을 Microsoft Azure 리소스 그룹의 이름으로,storage-account-name
을 Microsoft Azure 스토리지 계정 이름으로 교체합니다.다음 명령을 사용하여 사용 가능한 리소스를 나열하려면 다음을 수행합니다.
az resource list
$ az resource list
Copy to Clipboard Copied!
스토리지 컨테이너를 생성합니다.
az storage container create --account-name storage-account-name \ --account-key key1-value --name storage-account-name
$ az storage container create --account-name storage-account-name \ --account-key key1-value --name storage-account-name
Copy to Clipboard Copied! storage-account-name
을 스토리지 계정 이름으로 교체합니다.
14.2. Microsoft Azure 클라우드에 VHD 이미지를 수동으로 업로드
사용자 지정 VHD 이미지를 생성한 후 Microsoft Azure 클라우드에 수동으로 업로드할 수 있습니다. CLI를 사용하여 .vhd
이미지를 생성할 때 RHEL 이미지 빌더는 /var
하위 디렉터리에 임시 파일을 작성합니다. .vhd
이미지 생성이 실패하지 않도록 /var
하위 디렉토리 용량을 15~20GB 이상의 여유 공간으로 늘리십시오.
사전 요구 사항
- Microsoft Azure VHD 이미지를 업로드하려면 시스템을 설정해야 합니다.
RHEL 이미지 빌더에서 생성한 Microsoft Azure VHD 이미지가 있어야 합니다.
-
GUI에서
Azure Disk Image (.vhd)
이미지 유형을 사용합니다. -
CLI에서
vhd
출력 유형을 사용합니다.
-
GUI에서
프로세스
이미지를 Microsoft Azure에 푸시하고 해당 이미지에서 인스턴스를 생성합니다.
az storage blob upload --account-name account_name --container-name container_name --file image-disk.vhd --name image-disk.vhd --type page
$ az storage blob upload --account-name account_name --container-name container_name --file image-disk.vhd --name image-disk.vhd --type page
Copy to Clipboard Copied! Microsoft Azure Blob 스토리지에 업로드한 후 Microsoft Azure 이미지를 생성합니다. RHEL 이미지 빌더를 사용하여 생성한 이미지는
V1 = BIOS
및V2 = UEFI
인스턴스 유형 모두에 지원하는 하이브리드 이미지를 생성하므로--hyper-v-generation
인수를 지정할 수 있습니다. 기본 인스턴스 유형은V1
입니다.az image create --resource-group resource_group_name --name image-disk.vhd --os-type linux --location location \ --source https://$account_name.blob.core.windows.net/container_name/image-disk.vhd
$ az image create --resource-group resource_group_name --name image-disk.vhd --os-type linux --location location \ --source https://$account_name.blob.core.windows.net/container_name/image-disk.vhd - Running
Copy to Clipboard Copied!
검증
Microsoft Azure 포털을 사용하여 인스턴스 또는 다음과 유사한 명령을 생성합니다.
az vm create --resource-group resource_group_name --location location --name vm_name --image image-disk.vhd --admin-username azure-user --generate-ssh-keys
$ az vm create --resource-group resource_group_name --location location --name vm_name --image image-disk.vhd --admin-username azure-user --generate-ssh-keys - Running
Copy to Clipboard Copied! -
SSH를 통해 개인 키를 사용하여 결과 인스턴스에 액세스합니다.
azure-user
로 로그인합니다. 이 사용자 이름은 이전 단계에서 설정되었습니다.
14.3. Microsoft Azure 클라우드에 VHD 이미지 생성 및 자동 업로드
Microsoft Azure Cloud 서비스 공급자의 Blob 스토리지에 자동으로 업로드되는 RHEL 이미지 빌더를 사용하여 .vhd
이미지를 생성할 수 있습니다.
사전 요구 사항
- 시스템에 대한 root 액세스 권한이 있습니다.
- RHEL 웹 콘솔의 RHEL 이미지 빌더 인터페이스에 액세스할 수 있습니다.
- 블루프린트를 생성하셨습니다. 웹 콘솔 인터페이스에서 RHEL 이미지 빌더 블루프린트 생성을 참조하십시오.
- Microsoft 스토리지 계정이 생성되어 있습니다.
- 쓰기 가능한 Blob 스토리지 가 준비되어 있습니다.
프로세스
- RHEL 이미지 빌더 대시보드에서 사용하려는 블루프린트를 선택합니다.
- 탭을 클릭합니다.
.vhd
이미지를 만듭니다.이미지 생성 마법사가 열립니다.
-
유형 드롭다운 메뉴 목록에서
Microsoft Azure (.vhd)
를 선택합니다. - 이미지를 Microsoft Azure Cloud에 업로드하려면 Azure에 업로드 확인란을 선택합니다.
- 이미지 크기를 입력하고 클릭합니다.
-
유형 드롭다운 메뉴 목록에서
Azure에 업로드 페이지에서 다음 정보를 입력합니다.
인증 페이지에서 다음을 입력합니다.
- 스토리지 계정 이름입니다. 스토리지 계정 페이지에서 Microsoft Azure 포털 에서 찾을 수 있습니다.
- 스토리지 액세스 키: 액세스 키 스토리지 페이지에서 찾을 수 있습니다.
- 를 클릭합니다.
인증 페이지에서 다음을 입력합니다.
- 이미지 이름입니다.
- 스토리지 컨테이너 입니다. 이미지를 업로드할 Blob 컨테이너입니다. Microsoft Azure 포털에서 Blob 서비스 섹션에서 찾습니다.
- 를 클릭합니다.
검토 페이지에서 을 클릭합니다. RHEL 이미지 빌더 및 업로드 프로세스가 시작됩니다.
Microsoft Azure Cloud 에 내보낸 이미지에 액세스합니다.
- Microsoft Azure 포털에 액세스합니다.
- 검색 모음에서 "스토리지 계정"을 입력하고 목록에서 스토리지 계정을 클릭합니다.
- 검색 모음에서 "Images"를 입력하고 Services 아래에서 첫 번째 항목을 선택합니다. 이미지 대시보드 로 리디렉션됩니다.
- 탐색 패널에서 컨테이너를 클릭합니다.
-
생성한 컨테이너를 찾습니다. 컨테이너 내부에서는 RHEL 이미지 빌더를 사용하여 생성하고 푸시한
.vhd
파일입니다.
검증
VM 이미지를 생성하고 시작할 수 있는지 확인합니다.
- 검색 모음에서 이미지 계정을 입력하고 목록에서 이미지를 클릭합니다.
- 를 클릭합니다.
- 드롭다운 목록에서 이전에 사용한 리소스 그룹을 선택합니다.
- 이미지의 이름을 입력합니다.
- OS 유형에 대해 Linux 를 선택합니다.
- VM 생성에 대해 Gen 2 를 선택합니다.
- 스토리지 Blob 에서 VHD 파일에 도달할 때까지 를 클릭하고 스토리지 계정 및 컨테이너를 클릭합니다.
- 페이지 끝에 있는 Select 를 클릭합니다.
- 계정 유형을 선택합니다(예: Standard SSD ).
- 클릭한 다음 클릭합니다. 이미지 생성을 위해 잠시 기다립니다.
VM을 시작하려면 단계를 따르십시오.
- 클릭합니다.
- 헤더의 메뉴 표시줄에서 을 클릭합니다.
- 가상 머신의 이름을 입력합니다.
- 크기 및 관리자 계정 섹션을 완료합니다.
배포가 완료되면 가상 시스템 이름을 클릭하여 SSH를 사용하여 연결할 인스턴스의 공용 IP 주소를 검색합니다.
- 터미널을 열어 VM에 연결할 SSH 연결을 생성합니다.
15장. VMDK 사용자 지정 이미지 준비 및 vSphere에 업로드
사용자 지정 이미지를 생성하여 RHEL 이미지 빌더를 사용하여 수동으로 또는 자동으로 VMware vSphere 클라우드로 업데이트할 수 있습니다.
15.1. 이미지 빌더를 사용하여 사용자 지정 RHEL VMDK 이미지 생성 및 자동 업로드
RHEL 이미지 빌더를 사용하면 Open Virtualization 형식(.ova
)에서 사용자 지정 시스템 이미지를 생성하고 이러한 이미지를 VMware vSphere 클라이언트에 자동으로 업로드할 수 있습니다. Open Virtualization 형식(.ova
)은 가상 하드웨어에 대한 추가 메타데이터가 있는 .vmdk
이미지로, 이미지를 vSphere로 더 쉽게 가져올 수 있는 최소한의 템플릿이 포함되어 있습니다. .ovf
(Open Virtualization Format) 패키지는 vSphere .ova
이미지의 일부입니다. RHEL 이미지 빌더가 .ova
이미지를 vSphere 클라이언트에 가져오는 작업을 완료한 후 네트워크, 디스크 및 CD existsS와 같은 추가 하드웨어를 사용하여 구성할 수 있습니다.
vSphere GUI 또는 govc
클라이언트를 사용하여 Open Virtualization 형식(.ova
) 이미지를 가져올 수 있습니다. govc
클라이언트를 사용하여 이미지를 업로드하려면 VMDK 이미지 업로드 및 vSphere에서 RHEL 가상 머신 생성을 참조하십시오.
사전 요구 사항
- 브라우저에서 웹 콘솔에서 RHEL 이미지 빌더 앱을 열었습니다.
- 블루프린트를 생성하셨습니다.
프로세스
-
RHEL 이미지 빌더 대시보드에서
블루프린트
탭을 클릭합니다. - 블루프린트 표에서 이미지를 빌드할 블루프린트를 찾습니다.
- 선택한 블루프린트 오른쪽에 있는 이미지 생성 마법사가 열립니다. 을 클릭합니다.
이미지 출력 페이지에서 다음 단계를 완료합니다.
- Select a 블루프린트 목록에서 원하는 이미지 유형을 선택합니다.
- 이미지 출력 유형 목록에서 원하는 이미지 출력 유형을 선택합니다.
- 선택 사항: VMware에 업로드 확인란을 선택하여 이미지를 VMware에 직접 업로드합니다.
- 이미지의 크기를 입력합니다.
- 를 클릭합니다.
VMware에 업로드 페이지에서 다음 정보를 입력합니다.
- 이미지 이름: 이미지 이름을 입력합니다.
- host: 이미지 파일이 업로드될 VMware vSphere 인스턴스 URL을 입력합니다.
- Cluster: 이미지를 업로드할 클러스터 이름 페이지를 입력합니다.
- 데이터 센터: 이미지를 업로드할 데이터 센터 이름입니다.
- Datastore: 이미지를 업로드할 데이터 저장소 이름입니다.
- folder: 이미지가 업로드될 폴더 이름입니다.
- 를 클릭합니다.
검토 페이지에서 이미지 생성에 대한 세부 정보를 검토하고 생성을 클릭합니다.
이미지 생성이 시작되고 이 이미지 생성의 진행 상황 및 이후 버전이 VMware vSphere 클라이언트에 업로드됩니다.
15.2. vSphere에서 VMDK 이미지 업로드 및 RHEL 가상 머신 생성
RHEL 이미지 빌더를 사용하면 Open Virtualization 형식(.ova
) 또는 가상 디스크(.vmdk
) 형식으로 사용자 지정 VMware vSphere 시스템 이미지를 생성할 수 있습니다. 사용자 지정 이미지를 VMware vSphere 클라이언트에 업로드할 수 있습니다. govc import
이미지를 VMware vSphere에 업로드할 수 있습니다. 생성한 .vmdk
CLI 툴을 사용하여 .vmdk 또는 .
ovavmdk
에는 cloud-init
패키지가 설치되어 있으며 사용자 데이터를 사용하여 사용자를 프로비저닝하는 데 사용할 수 있습니다(예: 사용자 데이터).
VMware vSphere GUI를 사용하여 vmdk
이미지를 업로드하는 것은 지원되지 않습니다.
사전 요구 사항
- 사용자 이름 및 암호 사용자 지정이 포함된 블루프린트를 생성했습니다.
-
RHEL 이미지 빌더를 사용하여
.ova
또는.vmdk
형식으로 VMware vSphere 이미지를 생성하고 호스트 시스템에 다운로드했습니다. -
import.vmdk
명령을 사용할 수 있도록govc
CLI 툴을 설치 및 구성하셨습니다.
프로세스
GOVC 환경 변수를 사용하여 사용자 환경에서 다음 값을 구성합니다.
GOVC_URL GOVC_DATACENTER GOVC_FOLDER GOVC_DATASTORE GOVC_RESOURCE_POOL GOVC_NETWORK
GOVC_URL GOVC_DATACENTER GOVC_FOLDER GOVC_DATASTORE GOVC_RESOURCE_POOL GOVC_NETWORK
Copy to Clipboard Copied! - VMware vSphere 이미지를 다운로드한 디렉터리로 이동합니다.
단계에 따라 vSphere에서 VMware vSphere 이미지를 시작합니다.
VMware vSphere 이미지를 vSphere로 가져옵니다.
govc import.vmdk ./composer-api.vmdk folder-name
$ govc import.vmdk ./composer-api.vmdk folder-name
Copy to Clipboard Copied! .ova
형식의 경우:govc import.ova ./composer-api.ova folder-name
$ govc import.ova ./composer-api.ova folder-name
Copy to Clipboard Copied! 전원을 켜지 않고 vSphere에서 VM을 생성합니다.
govc vm.create \ -net.adapter=vmxnet3 \ -m=4096 -c=2 -g=rhel8_64Guest \ -firmware=efi -disk=”folder-name/composer-api.vmdk” \ -disk.controller=scsi -on=false \ vmname
govc vm.create \ -net.adapter=vmxnet3 \ -m=4096 -c=2 -g=rhel8_64Guest \ -firmware=efi -disk=”folder-name/composer-api.vmdk” \ -disk.controller=scsi -on=false \ vmname
Copy to Clipboard Copied! .ova
형식의 경우-firmware=efi -disk="folder-name/composer-api.vmdk"
행을-firmware=efi -disk="folder-name/composer-api.ova"로 바꿉니다.
VM의 전원을 켭니다.
govc vm.power -on vm-name
$ govc vm.power -on vm-name
Copy to Clipboard Copied! VM IP 주소를 검색합니다.
govc vm.ip vm-name
$ govc vm.ip vm-name
Copy to Clipboard Copied! 블루프린트에 지정한 사용자 이름과 암호를 사용하여 VM에 SSH를 사용하여 로그인합니다.
ssh admin@ vm-ip-address
$ ssh admin@ vm-ip-address
Copy to Clipboard Copied!
govc datastore.upload
명령을 사용하여 로컬 호스트에서 대상으로 .vmdk
이미지를 복사한 경우 결과 이미지를 사용할 수 없습니다. vSphere GUI에서 import.vmdk
명령을 사용할 수 있는 옵션이 없으므로 vSphere GUI에서 직접 업로드를 지원하지 않습니다. vSphere GUI에서는 .vmdk
이미지를 사용할 수 없습니다.
15.3. 이미지 빌더 GUI를 사용하여 VMDK 이미지를 vSphere에 생성하고 자동으로 업로드
RHEL 이미지 빌더 GUI 툴을 사용하여 VMware 이미지를 빌드하고 이미지를 vSphere 인스턴스로 직접 푸시할 수 있습니다. 이렇게 하면 이미지 파일을 다운로드하여 수동으로 푸시할 필요가 없습니다. 생성한 vmdk
에는 cloud-init
패키지가 설치되어 있으며 사용자 데이터를 사용하여 사용자를 프로비저닝하는 데 사용할 수 있습니다(예:). RHEL 이미지 빌더를 사용하여 .vmdk
이미지를 빌드하고 vSphere 인스턴스 서비스 공급자로 직접 푸시하려면 다음 단계를 따르십시오.
사전 요구 사항
-
루트
또는weldr
그룹의 멤버입니다. - 브라우저에서 link:https://localhost:9090/RHEL 이미지 빌더를 열었습니다.
- 블루프린트를 생성했습니다.
- vSphere 계정이 있습니다.
프로세스
- 생성한 블루프린트의 경우 탭을 클릭합니다.
이미지 유형 창이 열립니다.
이미지 유형 창에서 다음을 수행합니다.
- 드롭다운 메뉴에서 Type: VMware vSphere(.vmdk)를 선택합니다.
- 이미지를 vSphere 에 업로드하려면 VMware 에 업로드 확인란을 선택합니다.
- 선택 사항: 인스턴스화할 이미지의 크기를 설정합니다. 최소 기본 크기는 2GB입니다.
- 를 클릭합니다.
VMware에 업로드 창에서 인증 에서 다음 세부 정보를 입력합니다.
- username: vSphere 계정의 사용자 이름입니다.
- password : vSphere 계정의 암호입니다.
VMware에 업로드 창에서 대상 아래에 이미지 업로드 대상에 대한 다음 세부 정보를 입력합니다.
- image name : 이미지 의 이름입니다.
- host: VMware vSphere의 URL입니다.
- cluster: 클러스터의 이름입니다.
- 데이터 센터 이름: 데이터 센터의 이름입니다.
- 데이터 저장소: 데이터 저장소의 이름입니다.
- 다음을 클릭합니다.
검토 창에서 이미지 생성 세부 정보를 검토하고 을 클릭합니다.
RHEL 이미지 빌더는 RHEL vSphere 이미지 구성을 큐에 추가하고 지정한 vSphere 인스턴스의 클러스터에 이미지를 생성하고 업로드합니다.
프로세스가 완료되면 이미지 빌드 전체 상태를 확인할 수 있습니다.
검증
이미지 상태 업로드가 성공적으로 완료되면 업로드한 이미지에서 VM(가상 머신)을 생성하고 로그인할 수 있습니다. 이렇게 하려면 다음을 수행합니다.
- VMware vSphere Client에 액세스합니다.
- 지정한 vSphere 인스턴스의 클러스터에서 이미지를 검색합니다.
- 업로드한 이미지를 선택합니다.
- 선택한 이미지를 마우스 오른쪽 버튼으로 클릭합니다.
New Virtual Machine
을 클릭합니다.새 가상 머신 창이 열립니다.
New Virtual Machine 창에서 다음 세부 정보를 제공합니다.
-
새 가상 머신을 선택합니다
. - VM의 이름과 폴더를 선택합니다.
- 컴퓨터 리소스 선택: 이 작업에 대한 대상 컴퓨터 리소스를 선택합니다.
- 스토리지 선택: 예를 들어 NFS-Node1을 선택합니다.
- 선택 호환성: 이미지는 BIOS 여야 합니다.
- 게스트 운영 체제를 선택합니다. 예를 들어 Linux 및 Red Hat Fedora(64비트) 를 선택합니다.
- 사용자 지정 하드웨어: VM을 생성할 때 오른쪽 상단에 있는 장치 구성 버튼에서 기본 새 하드 디스크를 삭제하고 드롭다운을 사용하여 기존 하드 디스크 이미지를 선택합니다.
- 완료 준비: 세부 정보를 검토하고 마침 을 클릭하여 이미지를 생성합니다.
-
VMs 탭으로 이동합니다.
- 목록에서 생성한 VM을 선택합니다.
- 패널에서 시작 버튼을 클릭합니다. VM 이미지 로드를 보여주는 새 창이 표시됩니다.
- 블루프린트에 대해 생성한 인증 정보로 로그인합니다.
블루프린트에 추가한 패키지가 설치되어 있는지 확인할 수 있습니다. 예를 들면 다음과 같습니다.
*rpm -qa | grep firefox*
$ *rpm -qa | grep firefox*
Copy to Clipboard Copied!
16장. 사용자 정의 GCE 이미지 준비 및 GCP에 업로드
RHEL 이미지 빌더를 사용하면 gce
이미지를 빌드하고 사용자 또는 GCP 서비스 계정에 대한 인증 정보를 제공한 다음 gce
이미지를 GCP 환경에 직접 업로드할 수 있습니다.
16.1. CLI를 사용하여 GCP에 gce 이미지 구성 및 업로드
RHEL 이미지 빌더 CLI를 사용하여 gce
이미지를 GCP에 업로드하도록 인증 정보가 포함된 구성 파일을 설정합니다.
이미지가 부팅되지 않으므로 gce
이미지를 GCP에 수동으로 가져올 수 없습니다. gcloud
또는 RHEL 이미지 빌더를 사용하여 업로드해야 합니다.
사전 요구 사항
이미지를 GCP에 업로드할 수 있는 유효한 Google 계정 및 인증 정보가 있습니다. 자격 증명은 사용자 계정 또는 서비스 계정에서 있을 수 있습니다. 인증 정보와 연결된 계정에는 최소한 다음 IAM 역할이 할당되어 있어야 합니다.
-
roles/storage.admin
- 스토리지 오브젝트 생성 및 삭제 -
roles/compute.storageAdmin
- VM 이미지를 Compute Engine으로 가져옵니다.
-
- 기존 GCP 버킷이 있습니다.
프로세스
텍스트 편집기를 사용하여 다음 내용으로
gcp-config.toml
구성 파일을 생성합니다.provider = "gcp" [settings] bucket = "GCP_BUCKET" region = "GCP_STORAGE_REGION" object = "OBJECT_KEY" credentials = "GCP_CREDENTIALS"
provider = "gcp" [settings] bucket = "GCP_BUCKET" region = "GCP_STORAGE_REGION" object = "OBJECT_KEY" credentials = "GCP_CREDENTIALS"
Copy to Clipboard Copied! -
GCP_BUCKET
은 기존 버킷을 가리킵니다. 업로드 중인 이미지의 중간 스토리지 오브젝트를 저장하는 데 사용됩니다. -
GCP_STORAGE_REGION
은 일반 Google 스토리지 영역과 이중 또는 멀티 영역입니다. -
OBJECT_KEY
는 중간 스토리지 오브젝트의 이름입니다. 업로드 전에는 존재하지 않아야 하며 업로드 프로세스가 완료되면 삭제됩니다. 오브젝트 이름이.tar.gz
로 끝나지 않으면 확장이 오브젝트 이름에 자동으로 추가됩니다. GCP_CREDENTIALS
는 GCP에서 다운로드한 인증 정보 JSON 파일의Base64
인코딩 체계입니다. 인증 정보에 따라 GCP에서 이미지를 업로드할 프로젝트가 결정됩니다.참고GCP로 인증하는 다른 메커니즘을 사용하는 경우
gcp-config.toml
파일에GCP_CREDENTIALS
를 지정하는 것은 선택 사항입니다. 기타 인증 방법은 GCP로 인증 을 참조하십시오.
-
GCP에서 다운로드한 JSON 파일에서
GCP_CREDENTIALS
를 검색합니다.sudo base64 -w 0 cee-gcp-nasa-476a1fa485b7.json
$ sudo base64 -w 0 cee-gcp-nasa-476a1fa485b7.json
Copy to Clipboard Copied! 추가 이미지 이름 및 클라우드 공급자 프로필을 사용하여 작성을 생성합니다.
sudo composer-cli compose start BLUEPRINT-NAME gce IMAGE_KEY gcp-config.toml
$ sudo composer-cli compose start BLUEPRINT-NAME gce IMAGE_KEY gcp-config.toml
Copy to Clipboard Copied! 이미지 빌드, 업로드 및 클라우드 등록 프로세스를 완료하는 데 최대 10분이 걸릴 수 있습니다.
검증
이미지 상태가 FINISHED인지 확인합니다.
sudo composer-cli compose status
$ sudo composer-cli compose status
Copy to Clipboard Copied!
16.2. RHEL 이미지 빌더가 다른 GCP 인증 정보의 인증 순서를 정렬하는 방법
RHEL 이미지 빌더에서 여러 다른 유형의 인증 정보를 사용하여 GCP로 인증할 수 있습니다. RHEL 이미지 빌더 구성이 여러 인증 정보 세트를 사용하여 GCP에서 인증하도록 설정된 경우 다음과 같은 기본 설정 순서대로 인증 정보를 사용합니다.
-
구성 파일에서
composer-cli
명령으로 지정된 인증 정보입니다. -
osbuild-composer
작업자 구성에 구성된 인증 정보입니다. 다음 옵션을 사용하여 자동으로 인증할 수 있는
Google GCP SDK
라이브러리의Application Default Credentials
(애플리케이션 기본 인증 정보)입니다.- GOOGLE_APPLICATION_CREDENTIALS 환경 변수가 설정된 경우 애플리케이션 기본 자격 증명은 변수가 가리키는 파일에서 인증 정보를 로드하고 사용합니다.
애플리케이션 기본 인증 정보는 코드를 실행하는 리소스에 연결된 서비스 계정을 사용하여 인증을 시도합니다. 예를 들면 Google Compute Engine VM입니다.
참고GCP 인증 정보를 사용하여 이미지를 업로드할 GCP 프로젝트를 결정해야 합니다. 따라서 모든 이미지를 동일한 GCP 프로젝트에 업로드하지 않으려면
composer-cli
명령을 사용하여gcp-config.toml
구성 파일에 인증 정보를 지정해야 합니다.
16.3. composer-cli 명령을 사용하여 GCP 인증 정보 지정
모든 이미지 빌드에 전역적으로 GCP에 사용하도록 GCP 인증 인증 정보를 구성할 수 있습니다. 이렇게 하면 이미지를 동일한 GCP 프로젝트로 가져오려면 GCP에 모든 이미지 업로드에 동일한 인증 정보를 사용할 수 있습니다.
프로세스
/etc/osbuild-worker/osbuild-worker.toml
작업자 구성에서 다음 인증 정보 값을 설정합니다.[gcp] credentials = "PATH_TO_GCP_ACCOUNT_CREDENTIALS"
[gcp] credentials = "PATH_TO_GCP_ACCOUNT_CREDENTIALS"
Copy to Clipboard Copied!
16.4. osbuild-composer 작업자 구성에서 인증 정보 지정
모든 이미지 빌드에 전역적으로 GCP에 사용하도록 GCP 인증 인증 정보를 구성할 수 있습니다. 이렇게 하면 이미지를 동일한 GCP 프로젝트로 가져오려면 GCP에 모든 이미지 업로드에 동일한 인증 정보를 사용할 수 있습니다.
프로세스
/etc/osbuild-worker/osbuild-worker.toml
작업자 구성에서 다음 인증 정보 값을 설정합니다.[gcp] credentials = "PATH_TO_GCP_ACCOUNT_CREDENTIALS"
[gcp] credentials = "PATH_TO_GCP_ACCOUNT_CREDENTIALS"
Copy to Clipboard Copied!
17장. OCI에 사용자 정의 이미지 직접 준비 및 업로드
사용자 지정 이미지를 생성한 다음 RHEL 이미지 빌더를 사용하여 Oracle Cloud Infrastructure(OCI) 인스턴스로 자동으로 업데이트할 수 있습니다.
17.1. OCI에 사용자 정의 이미지 생성 및 자동 업로드
RHEL 이미지 빌더를 사용하여 사용자 지정 이미지를 빌드하고 Oracle Cloud Infrastructure(OCI) 인스턴스에 직접 푸시합니다. 그런 다음 OCI 대시보드에서 이미지 인스턴스를 시작할 수 있습니다.
사전 요구 사항
-
root
또는weldr
그룹 사용자가 시스템에 액세스할 수 있습니다. - Oracle Cloud 계정이 있습니다.
- 관리자가 OCI 정책에서 보안 액세스 권한을 부여해야 합니다.
-
선택한
OCI_REGION
에 OCI Bucket을 생성했습니다.
프로세스
- 브라우저에서 웹 콘솔의 RHEL 이미지 빌더 인터페이스를 엽니다.
- 블루프린트 생성 마법사가 열립니다. 클릭합니다.
- 세부 정보 페이지에서 블루프린트의 이름을 입력하고 설명을 선택적으로 입력합니다. 를 클릭합니다.
- 패키지 페이지에서 이미지에 포함할 구성 요소 및 패키지를 선택합니다. 를 클릭합니다.
- 사용자 지정 페이지에서 블루프린트에 필요한 사용자 지정을 구성합니다. 를 클릭합니다.
- 검토 페이지에서 을 클릭합니다.
- 이미지를 생성하려면 이미지 생성 마법사가 열립니다. 클릭합니다.
이미지 출력 페이지에서 다음 단계를 완료합니다.
- " Select a blueprint" 드롭다운 메뉴에서 원하는 블루프린트를 선택합니다.
-
"Image output type" 드롭다운 메뉴에서
Oracle Cloud Infrastructure (.qcow2)
를 선택합니다. - "Upload OCI ( OCI 업로드) 확인란을 선택하여 이미지를 OCI에 업로드합니다.
- "이미지 크기" 를 입력합니다. 를 클릭합니다.
OCI - 인증 업로드 페이지에서 다음 필수 세부 정보를 입력합니다.
- 사용자 OCID: 사용자 세부 정보를 표시하는 페이지의 콘솔에서 찾을 수 있습니다.
- 개인 키
OCI - 대상 업로드 페이지에서 다음 필수 세부 정보를 입력하고 클릭합니다.
- 이미지 이름: 업로드할 이미지의 이름입니다.
- OCI 버킷
- 버킷 네임스페이스
- 버킷 리전
- 버킷 compartment
- 버킷 테넌시
- 마법사의 세부 정보를 검토하고 을 클릭합니다.
RHEL 이미지 빌더에서는 RHEL .qcow2
이미지 작성을 큐에 추가합니다.
검증
- OCI 대시보드 → 사용자 지정 이미지에 액세스합니다.
- 이미지에 지정한 Compartment 를 선택하고 이미지 가져오기 테이블에서 이미지를 찾습니다.
- 이미지 이름을 클릭하고 이미지 정보를 확인합니다.
18장. 사용자 지정 QCOW2 이미지를 OpenStack에 직접 준비 및 업로드
RHEL 이미지 빌더를 사용하여 사용자 지정 .qcow2
이미지를 생성하고 OpenStack 클라우드 배포에 수동으로 업로드할 수 있습니다.
18.1. OpenStack에 QCOW2 이미지 업로드
RHEL 이미지 빌더 툴을 사용하면 OpenStack 클라우드 배포에 업로드하는 데 적합한 사용자 지정 .qcow2
이미지를 생성하고 인스턴스를 시작할 수 있습니다. RHEL 이미지 빌더는 QCOW2 형식으로 이미지를 생성하지만 OpenStack에 특정한 변경 사항을 적용합니다.
사전 요구 사항
- 블루프린트를 생성했습니다.
프로세스
QCOW2
이미지 작성을 시작합니다.composer-cli compose start blueprint_name qcow2
# composer-cli compose start blueprint_name qcow2
Copy to Clipboard Copied! 빌드 상태를 확인합니다.
composer-cli compose status
# composer-cli compose status
Copy to Clipboard Copied! 이미지 빌드가 완료되면 이미지를 다운로드할 수 있습니다.
QCOW2
이미지를 다운로드합니다.composer-cli compose image UUID
# composer-cli compose image UUID
Copy to Clipboard Copied! - OpenStack 대시보드에 액세스하여 를 클릭합니다.
-
왼쪽 메뉴에서
Admin
탭을 선택합니다. 시스템 패널
에서 이미지를클릭합니다
.이미지 생성
마법사가 열립니다.이미지 생성
마법사에서 다음을 수행합니다.- 이미지의 이름을 입력하십시오
-
찾아보기
를 클릭하여QCOW2
이미지를 업로드합니다. -
Format
드롭다운 목록에서QCOW2 - QEMU Emulator
를 선택합니다. - 클릭합니다.
왼쪽 메뉴에서
프로젝트
탭을 선택합니다.-
Compute
메뉴에서Instances
를 선택합니다. 인스턴스 시작
마법사가 열립니다.-
세부 정보
페이지에서 인스턴스의 이름을 입력합니다. 를 클릭합니다. -
소스
페이지에서 업로드한 이미지의 이름을 선택합니다. 를 클릭합니다. -
플레이버
페이지에서 요구 사항에 가장 적합한 시스템 리소스를 선택합니다. 시작을 .
-
-
이미지의 모든 메커니즘(CLI 또는 OpenStack 웹 UI)을 사용하여 이미지 인스턴스를 실행할 수 있습니다. SSH를 통해 개인 키를 사용하여 결과 인스턴스에 액세스합니다.
cloud-user
로 로그인합니다.
19장. Alibaba Cloud에 사용자 지정 RHEL 이미지 준비 및 업로드
RHEL 이미지 빌더를 사용하여 생성한 사용자 지정 .ami
이미지를 Alibaba Cloud에 업로드할 수 있습니다.
19.1. Alibaba Cloud를 사용하여 사용자 지정 RHEL 이미지의 인스턴스 생성
Alibaba ECS 콘솔을 사용하여 사용자 지정 RHEL 이미지의 인스턴스를 생성할 수 있습니다.
사전 요구 사항
- OSS 를 활성화하고 사용자 정의 이미지를 업로드했습니다.
- 이미지를 ECS 콘솔로 가져왔습니다.
프로세스
- ECS 콘솔에 로그인합니다.
- 왼쪽 메뉴에서 인스턴스를 선택합니다.
- 오른쪽 상단에서 인스턴스 생성 을 클릭합니다. 새 창으로 리디렉션됩니다.
- 필요한 모든 정보를 입력합니다. 자세한 내용은 마법사를 사용하여 인스턴스 생성 을 참조하십시오.
Create Instance 를 클릭하고 순서를 확인합니다.
참고서브스크립션에 따라 인스턴스 생성 대신 Create Order 옵션이 표시됩니다.
결과적으로 Alibaba ECS 콘솔에서 배포할 준비가 된 활성 인스턴스가 있습니다
.
19.2. Alibaba Cloud로 이미지 가져오기
RHEL 이미지 빌더를 사용하여 ECS(Elastic Compute Service)로 생성한 사용자 지정 Alibaba RHEL 이미지를 가져오려면 다음 단계를 따르십시오.
사전 요구 사항
- 시스템이 Alibaba 이미지를 업로드하도록 설정되어 있습니다.
-
RHEL 이미지 빌더를 사용하여
ami
이미지를 생성했습니다. - 버킷이 있습니다. 버킷 생성을 참조하십시오.
- 활성 Alibaba 계정이 있습니다.
- OSS 를 활성화했습니다.
- 이미지를 Object Storage Service(OSS)에 업로드했습니다.
프로세스
- 왼쪽 메뉴에서 클릭합니다.
- 오른쪽 상단에서 를 클릭합니다. 대화 상자가 열립니다.
이미지가 있는 올바른 리전을 설정했는지 확인합니다. 다음 정보를 입력합니다.
-
OSS 개체 주소
: OSS 개체 주소를 얻는 방법을 참조하십시오. -
이미지 이름
-
운영 체제
-
시스템 디스크 크기
-
시스템 아키텍처
-
플랫폼
: Red Hat
-
선택 사항: 다음 세부 정보를 제공합니다.
-
이미지 형식
: 업로드된 이미지 형식에 따라qcow2
또는ami
입니다. -
이미지 설명
데이터 디스크 이미지 추가
주소는 OSS 관리 콘솔에서 확인할 수 있습니다. 왼쪽 메뉴에서 필요한 버킷을 선택한 후 다음을 수행합니다.
-
-
파일
섹션을 선택합니다. 적절한 이미지에 대한 오른쪽에 있는 세부 정보 링크를 클릭합니다.
화면 오른쪽에 창이 표시되고 이미지 세부 정보가 표시됩니다.
OSS
오브젝트 주소는URL
상자에 있습니다.- 참고
가져오기 프로세스 시간은 이미지 크기에 따라 다를 수 있습니다.
사용자 지정된 이미지를 ECS
콘솔로 가져옵니다.
19.3. Alibaba에 사용자 지정 RHEL 이미지 업로드
RHEL 이미지 빌더를 사용하여 생성한 사용자 지정 AMI
이미지를 Object Storage Service(OSS)에 업로드할 수 있습니다.
사전 요구 사항
- 시스템이 Alibaba 이미지를 업로드하도록 설정되어 있습니다.
-
RHEL 이미지 빌더를 사용하여
ami
이미지를 생성했습니다. - 버킷이 있습니다. 버킷 생성을 참조하십시오.
- 활성 Alibaba 계정이 있습니다.
- OSS 를 활성화했습니다.
프로세스
- OSS 콘솔에 로그인합니다.
- 왼쪽의 Bucket 메뉴에서 이미지를 업로드할 버킷을 선택합니다.
- 오른쪽 상단 메뉴에서 파일 탭을 클릭합니다.
- 업로드 대상: 현재 디렉터리 또는 지정된 디렉터리에 파일을 업로드하도록 선택합니다.
- File ACL: 업로드된 파일의 권한 유형을 선택합니다.
- 를 클릭합니다.
- OSS 콘솔에 업로드할 이미지를 선택합니다.
- 을 클릭합니다.
19.4. Alibaba Cloud에 사용자 지정 RHEL 이미지 업로드 준비
사용자 지정 RHEL 이미지를 Alibaba Cloud에 배포하려면 먼저 사용자 지정 이미지를 확인해야 합니다. Alibaba Cloud는 사용자 정의 이미지를 사용하기 전에 특정 요구 사항을 충족하도록 요청하므로 이미지를 성공적으로 부팅하려면 특정 구성이 필요합니다.
RHEL 이미지 빌더는 Alibaba의 요구 사항을 준수하는 이미지를 생성합니다. 그러나 Red Hat은 Alibaba image_check 툴 을 사용하여 이미지의 형식 준수를 확인하는 것이 좋습니다.
사전 요구 사항
- RHEL 이미지 빌더를 사용하여 Alibaba 이미지를 생성해야 합니다.
프로세스
- Alibaba image_check 툴을 사용하여 확인할 이미지가 포함된 시스템에 연결합니다.
image_check 툴을 다운로드합니다.
curl -O https://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/73848/cn_zh/1557459863884/image_check
$ curl -O https://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/73848/cn_zh/1557459863884/image_check
Copy to Clipboard Copied! 이미지 규정 준수 툴의 파일 권한을 변경합니다.
chmod +x image_check
# chmod +x image_check
Copy to Clipboard Copied! 명령을 실행하여 이미지 규정 준수 툴 검사를 시작합니다.
./image_check
# ./image_check
Copy to Clipboard Copied! 이 도구는 시스템 구성을 확인하고 화면에 표시되는 보고서를 생성합니다. image_check 툴은 이 보고서를 이미지 규정 준수 도구가 실행 중인 동일한 폴더에 저장합니다.
문제 해결
탐지 항목 중 하나라도 실패하면 터미널의 지침에 따라 수정합니다.