4.8. 지원되는 이미지 사용자 정의
다음과 같은 블루프린트에 사용자 지정을 추가하여 이미지를 사용자 지정할 수 있습니다.
- 추가 RPM 패키지 추가
- 서비스 활성화
- 커널 명령줄 매개 변수 사용자 정의.
다른 사람 사이입니다. 청사진 내에서 여러 이미지 사용자 정의를 사용할 수 있습니다. 사용자 지정을 사용하면 기본 패키지에서 사용할 수 없는 이미지에 패키지 및 그룹을 추가할 수 있습니다. 이러한 옵션을 사용하려면 블루프린트에서 사용자 지정을 구성하고 RHEL 이미지 빌더로 가져오기(push)합니다.
4.8.1. 배포 선택
distro
필드를 사용하여 이미지를 구성할 때 사용할 배포를 선택하거나 블루프린트의 종속성을 해결할 수 있습니다. distro
를 비워 두면 호스트 배포를 사용합니다. 배포를 지정하지 않으면 블루프린트에서 호스트 배포를 사용합니다. 호스트 운영 체제를 업그레이드하는 경우 새 운영 체제 버전을 사용하여 배포 세트 빌드 이미지가 없는 블루프린트입니다. RHEL 이미지 빌더 호스트와 다른 운영 체제 이미지를 빌드할 수 없습니다.
항상 지정된 RHEL 이미지를 빌드하도록 RHEL 배포를 사용하여 블루프린트를 사용자 지정합니다.
name = "blueprint_name" description = "blueprint_version" version = "0.1" distro = "different_minor_version"
예를 들면 다음과 같습니다.
name = "tmux" description = "tmux image with openssh" version = "1.2.16" distro = "rhel-8.5"
"different_minor_version"
을 교체하여 다른 마이너 버전을 빌드합니다. 예를 들어 RHEL 9.4 이미지를 빌드하려면 distro
= "rhel-94"를 사용합니다. RHEL 9.3 이미지에서 RHEL 9.3, RHEL 8.9 및 이전 릴리스와 같은 마이너 버전을 빌드할 수 있습니다.
4.8.2. 패키지 그룹 선택
패키지 그룹으로 블루프린트를 사용자 지정합니다. 그룹
목록은 이미지에 설치할 패키지 그룹을 설명합니다. 패키지 그룹은 리포지토리 메타데이터에 정의되어 있습니다. 각 그룹에는 주로 사용자 인터페이스에 표시하는 데 사용되는 설명적인 이름과 Kickstart 파일에서 일반적으로 사용되는 ID가 있습니다. 이 경우 ID를 사용하여 그룹을 나열해야 합니다. 그룹에는 필수, 기본값, 선택 사항 등 패키지를 분류하는 세 가지 방법이 있습니다. 필수 및 기본 패키지만 블루프린트에 설치됩니다. 선택적 패키지를 선택할 수 없습니다.
name
속성은 필수 문자열이며 리포지토리의 패키지 그룹 ID와 정확히 일치해야 합니다.
현재 osbuild-composer
의 패키지와 모듈 간에는 차이가 없습니다. 둘 다 RPM 패키지 종속성으로 취급됩니다.
패키지로 블루프린트를 사용자 지정합니다.
[[groups]] name = "group_name"
group_name
을 그룹 이름으로 교체합니다. 예:anaconda-tools
:[[groups]] name = "anaconda-tools"
4.8.3. 컨테이너 포함
블루프린트를 사용자 지정하여 최신 RHEL 컨테이너를 포함할 수 있습니다. 컨테이너 목록에는 소스가 있는 오브젝트와 필요한 경우 tls-verify
속성이 포함되어 있습니다.
컨테이너 목록 항목은 이미지에 포함할 컨테이너 이미지를 설명합니다.
-
소스
- 필수 필드입니다. 레지스트리의 컨테이너 이미지에 대한 참조입니다. 이 예에서는registry.access.redhat.com
레지스트리를 사용합니다. 태그 버전을 지정할 수 있습니다. 기본 태그 버전은 latest입니다. -
name
- 로컬 레지스트리에 있는 컨테이너의 이름입니다. -
tls-verify
- 부울 필드. tls-verify 부울 필드는 전송 계층 보안을 제어합니다. 기본값은 true입니다.
포함된 컨테이너는 자동으로 시작되지 않습니다. 시작하려면 파일 사용자 지정이 포함된 systemd
장치 파일 또는
사각형을 만듭니다.
registry.access.redhat.com/ubi9/ubi:latest
의 컨테이너와 호스트의 컨테이너를 포함하려면 블루프린트에 다음 사용자 지정을 추가합니다.[[containers]] source = "registry.access.redhat.com/ubi9/ubi:latest" name = "local-name" tls-verify = true [[containers]] source = "localhost/test:latest" local-storage = true
containers-auth.json
파일을 사용하여 보호된 컨테이너 리소스에 액세스할 수 있습니다. 컨테이너 레지스트리 인증 정보를 참조하십시오.
4.8.4. 이미지 호스트 이름 설정
customization .hostname
은 최종 이미지 호스트 이름을 구성하는 데 사용할 수 있는 선택적 문자열입니다. 이 사용자 지정은 선택 사항이며 설정하지 않으면 블루프린트에서 기본 호스트 이름을 사용합니다.
블루프린트를 사용자 지정하여 호스트 이름을 구성합니다.
[customizations] hostname = "baseimage"
4.8.5. 추가 사용자 지정
이미지에 사용자를 추가하고 선택적으로 SSH 키를 설정합니다. 이 섹션의 모든 필드는 이름을
제외하고 선택 사항입니다.
절차
이미지에 사용자를 추가하도록 블루프린트를 사용자 지정합니다.
[[customizations.user]] name = "USER-NAME" description = "USER-DESCRIPTION" password = "PASSWORD-HASH" key = "PUBLIC-SSH-KEY" home = "/home/USER-NAME/" shell = "/usr/bin/bash" groups = ["users", "wheel"] uid = NUMBER gid = NUMBER
[[customizations.user]] name = "admin" description = "Administrator account" password = "$6$CHO2$3rN8eviE2t50lmVyBYihTgVRHcaecmeCk31L..." key = "PUBLIC SSH KEY" home = "/srv/widget/" shell = "/usr/bin/bash" groups = ["widget", "users", "wheel"] uid = 1200 gid = 1200 expiredate = 12345
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())'
다른 자리 표시자를 적절한 값으로 바꿉니다.
name
값을 입력하고 필요하지 않은 행을 생략합니다.포함할 모든 사용자에 대해 이 블록을 반복합니다.
4.8.6. 추가 그룹 지정
결과 시스템 이미지에 대한 그룹을 지정합니다. name
및 gid
속성은 모두 필수입니다.
그룹으로 블루프린트를 사용자 지정합니다.
[[customizations.group]] name = "GROUP-NAME" gid = NUMBER
포함할 모든 그룹에 대해 이 블록을 반복합니다. 예를 들면 다음과 같습니다.
[[customizations.group]] name = "widget" gid = 1130
4.8.7. 기존 사용자를 위한 SSH 키 설정
custom .sshkey
를 사용하여 최종 이미지에 있는 기존 사용자의 SSH 키를 설정할 수 있습니다. 사용자
및 키
속성은 모두 필수입니다.
기존 사용자의 SSH 키를 설정하여 블루프린트를 사용자 지정합니다.
[[customizations.sshkey]] user = "root" key = "PUBLIC-SSH-KEY"
예를 들면 다음과 같습니다.
[[customizations.sshkey]] user = "root" key = "SSH key for root"
참고기존 사용자에 대한 customization
.sshkey 사용자
지정만 구성할 수 있습니다. 사용자를 생성하고 SSH 키를 설정하려면 추가 사용자 사용자 지정을 참조하십시오.
4.8.8. 커널 인수 추가
부트 로더 커널 명령줄에 인수를 추가할 수 있습니다. 기본적으로 RHEL 이미지 빌더는 기본 커널을 이미지에 빌드합니다. 그러나 블루프린트에서 커널을 구성하여 커널을 사용자 지정할 수 있습니다.
커널 부팅 매개변수 옵션을 기본값에 추가합니다.
[customizations.kernel] append = "KERNEL-OPTION"
예를 들면 다음과 같습니다.
[customizations.kernel] name = "kernel-debug" append = "nosmt=force"
4.8.9. 실시간 커널을 사용하여 RHEL 이미지 빌드
실시간 커널(kernel-rt
)을 사용하여 RHEL 이미지를 빌드하려면 리포지토리를 재정의해야 kernel-rt
가 기본 커널로 올바르게 선택되는 이미지를 빌드할 수 있습니다. /usr/share/osbuild-composer/repositories/
디렉터리의 .json
을 사용합니다. 그런 다음 시스템에 빌드한 이미지를 배포하고 실시간 커널 기능을 사용할 수 있습니다.
실시간 커널은 Red Hat Enterprise Linux 실행을 위해 인증된 AMD64 및 Intel 64 서버 플랫폼에서 실행됩니다.
사전 요구 사항
- 시스템이 등록되고 RHEL이 RHEL for Real Time 서브스크립션에 연결되어 있습니다. dnf를 사용하여 실시간 RHEL 설치를 참조하십시오.
절차
다음 디렉터리를 생성합니다.
# mkdir /etc/osbuild-composer/repositories/
/usr/share/osbuild-composer/repositories/rhel-9.버전.json
파일의 내용을 새 디렉터리로 복사합니다.# cp /usr/share/osbuild-composer/repositories/rhel-9.version.json /etc/osbuild-composer/repositories
RT 커널 리포지터리를 포함하도록
/etc/osbuild-composer/repositories/rhel-9.버전.json
파일을 편집합니다.# grep -C 6 kernel-rt /etc/osbuild-composer/repositories/rhel-9.version.json "baseurl": "https://cdn.redhat.com/content/dist/rhel9/9.version/x86_64/appstream/os", "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nm………..=\n=UZd/\n-----END PGP PUBLIC KEY BLOCK-----\n", "rhsm": true, "check_gpg": true }, { "name": "kernel-rt", "baseurl": "https://cdn.redhat.com/content/dist/rhel9/9.version/x86_64/rt/os", "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBEr………fg==\n=UZd/\n-----END PGP PUBLIC KEY BLOCK-----\n", "rhsm": true, "check_gpg": true },
서비스를 다시 시작하십시오.
# systemctl restart osbuild-composer
kernel-rt
가.json
파일에 포함되어 있는지 확인합니다.# composer-cli sources list # composer-cli sources info kernel-rt
이전에 구성한 URL이 표시됩니다.
블루프린트를 생성합니다. 블루프린트에서 "[customizations.kernel]" 사용자 지정을 추가합니다. 다음은 블루프린트에 "[customizations.kernel]"을 포함하는 예입니다.
name = "rt-kernel-image" description = "" version = "2.0.0" modules = [] groups = [] distro = "rhel-9_version_" [[customizations.user]] name = "admin" password = "admin" groups = ["users", "wheel"] [customizations.kernel] name = "kernel-rt" append = ""
블루프린트를 서버로 푸시합니다.
# composer-cli blueprints push rt-kernel-image.toml
생성한 블루프린트에서 이미지를 빌드합니다. 다음 예제에서는 (
.qcow2
) 이미지를 빌드합니다.# composer-cli compose start rt-kernel-image qcow2
- 실시간 커널 기능을 사용하려는 시스템에 빌드한 이미지를 배포합니다.
검증
이미지에서 VM을 부팅한 후 이미지가 기본
커널로
올바르게 선택되었는지 확인합니다.$ cat /proc/cmdline BOOT_IMAGE=(hd0,got3)/vmlinuz-5.14.0-362.24.1..el9_version_.x86_64+rt...
4.8.10. 시간대 및 NTP 설정
블루프린트를 사용자 지정하여 시간대 및 NTP( Network Time Protocol )를 구성할 수 있습니다. timezone
및 ntpservers
속성은 모두 선택적 문자열입니다. 시간대를 사용자 지정하지 않으면 시스템은 UTC( Universal Time, Coordinated )를 사용합니다. NTP 서버를 설정하지 않으면 시스템은 기본 배포를 사용합니다.
시간대
및 원하는ntpservers
로 블루프린트를 사용자 지정합니다.[customizations.timezone] timezone = "TIMEZONE" ntpservers = "NTP_SERVER"
예를 들면 다음과 같습니다.
[customizations.timezone] timezone = "US/Eastern" ntpservers = ["0.north-america.pool.ntp.org", "1.north-america.pool.ntp.org"]
참고Google Cloud와 같은 일부 이미지 유형에는 이미 NTP 서버가 설정되어 있습니다. 이미지에 선택한 환경에서 NTP 서버를 부팅해야 하므로 재정의할 수 없습니다. 그러나 블루프린트에서 시간대를 사용자 지정할 수 있습니다.
4.8.11. 로케일 설정 사용자 정의
결과 시스템 이미지에 대한 로케일 설정을 사용자 지정할 수 있습니다. 언어
및 키보드
속성은 모두 필수입니다. 다른 많은 언어를 추가할 수 있습니다. 첫 번째 언어는 기본 언어이며 다른 언어는 보조 언어입니다.
절차
로케일 설정을 설정합니다.
[customizations.locale] languages = ["LANGUAGE"] keyboard = "KEYBOARD"
예를 들면 다음과 같습니다.
[customizations.locale] languages = ["en_US.UTF-8"] keyboard = "us"
언어에서 지원하는 값을 나열하려면 다음 명령을 실행합니다.
$ localectl list-locales
키보드에서 지원하는 값을 나열하려면 다음 명령을 실행합니다.
$ localectl list-keymaps
4.8.12. 방화벽 사용자 정의
결과 시스템 이미지에 대한 방화벽을 설정합니다. 기본적으로 방화벽은 sshd
와 같이 포트를 명시적으로 활성화하는 서비스를 제외하고 들어오는 연결을 차단합니다.
[customizations.firewall]
또는 [customizations.firewall.services]
를 사용하지 않으려는 경우 속성을 제거하거나 빈 목록 []으로 설정합니다. 기본 방화벽 설정만 사용하려는 경우 블루프린트에서 사용자 지정을 생략할 수 있습니다.
Google 및 OpenStack 템플릿은 해당 환경의 방화벽을 명시적으로 비활성화합니다. 블루프린트를 설정하여 이 동작을 재정의할 수 없습니다.
절차
다음 설정으로 블루프린트를 사용자 지정하여 다른 포트 및 서비스를 엽니다.
[customizations.firewall] ports = ["PORTS"]
여기서 port는 열 포트 또는 포트 및 프로토콜 범위를 포함하는 선택적 문자열 목록입니다.
port:protocol
형식을 사용하여 포트를 구성할 수 있습니다.portA-portB:protocol
형식을 사용하여 포트 범위를 구성할 수 있습니다. 예를 들면 다음과 같습니다.[customizations.firewall] ports = ["22:tcp", "80:tcp", "imap:tcp", "53:tcp", "53:udp", "30000-32767:tcp", "30000-32767:udp"]
숫자 포트 또는
/etc/services
의 해당 이름을 사용하여 포트 목록을 활성화하거나 비활성화할 수 있습니다.customization
.firewall.service 섹션에서 활성화 또는 비활성화할 방화벽 서비스를 지정합니다.
[customizations.firewall.services] enabled = ["SERVICES"] disabled = ["SERVICES"]
사용 가능한 방화벽 서비스를 확인할 수 있습니다.
$ firewall-cmd --get-services
예를 들면 다음과 같습니다.
[customizations.firewall.services] enabled = ["ftp", "ntp", "dhcp"] disabled = ["telnet"]
참고firewall.services
에 나열된 서비스는/etc/services
파일에서 사용할 수 있는 서비스이름과
다릅니다.
4.8.13. 서비스 활성화 또는 비활성화
부팅 시 활성화할 서비스를 제어할 수 있습니다. 일부 이미지 유형에는 이미지가 올바르게 작동하고 이 설정을 재정의할 수 없도록 서비스가 이미 활성화되어 있거나 비활성화되어 있습니다. 블루프린트의 [customizations.services]
설정은 이러한 서비스를 대체하지 않고 이미지 템플릿에 이미 있는 서비스 목록에 서비스를 추가합니다.
부팅 시 활성화할 서비스를 사용자 지정합니다.
[customizations.services] enabled = ["SERVICES"] disabled = ["SERVICES"]
예를 들면 다음과 같습니다.
[customizations.services] enabled = ["sshd", "cockpit.socket", "httpd"] disabled = ["postfix", "telnetd"]
4.8.14. 파티션 모드 지정
partitioning_mode
변수를 사용하여 빌드 중인 디스크 이미지를 파티션하는 방법을 선택합니다. 다음과 같은 지원되는 모드로 이미지를 사용자 지정할 수 있습니다.
-
auto-lvm
: 하나 이상의 파일 시스템 사용자 지정이 없는 경우 원시 파티션 모드를 사용합니다. 이 경우 LVM 파티션 모드를 사용합니다. -
LVM
: 추가 마운트 지점이 없는 경우에도 LVM 파티션 모드를 사용합니다. -
Raw
: 마운트 지점이 하나 이상 있는 경우에도 원시 파티션을 사용합니다. 다음 사용자 지정을 사용하여
partitioning_mode
변수로 블루프린트를 사용자 지정할 수 있습니다.[customizations] partitioning_mode = "lvm"
4.8.15. 사용자 정의 파일 시스템 구성 지정
청사진에 사용자 지정 파일 시스템 구성을 지정할 수 있으므로 기본 레이아웃 구성 대신 특정 디스크 레이아웃으로 이미지를 생성할 수 있습니다. vGPU에 기본이 아닌 레이아웃 구성을 사용하면 다음과 같은 이점을 얻을 수 있습니다.
- 보안 벤치마크 준수
- 디스크 부족 오류로부터 보호
- 성능 개선
- 기존 설정과의 일관성
OSTree 이미지에는 읽기 전용과 같은 자체 마운트 규칙이 있으므로 OSTree 시스템은 파일 시스템 사용자 정의를 지원하지 않습니다. 다음 이미지 유형은 지원되지 않습니다.
-
image-installer
-
edge-installer
-
edge-simplified-installer
또한 이러한 이미지 유형이 분할된 운영 체제 이미지를 생성하지 않기 때문에 다음 이미지 유형은 파일 시스템 사용자 정의를 지원하지 않습니다.
-
edge-commit
-
edge-container
-
tar
-
container
RHEL 8.10 및 9.4 이전의 릴리스 배포의 경우 블루프린트는 다음 마운트 지점
및 해당 하위 디렉터리를 지원합니다.
-
/
- 루트 마운트 지점 -
/var
-
/home
-
/opt
-
/srv
-
/usr
-
/app
-
/data
-
/tmp
RHEL 9.4 및 8.10 릴리스 이후 릴리스 배포에서는 운영 체제용으로 예약된 특정 경로를 제외하고 임의의 사용자 지정 마운트 지점을 지정할 수 있습니다.
다음 마운트 지점 및 해당 하위 디렉터리에 임의의 사용자 지정 마운트 지점을 지정할 수 없습니다.
-
/bin
-
/boot/efi
-
/dev
-
/etc
-
/lib
-
/lib64
-
/lost+found
-
/proc
-
/run
-
/sbin
-
/sys
-
/sysroot
-
/var/lock
-
/var/run
/usr
사용자 지정 마운트 지점의 블루프린트에서 파일 시스템을 사용자 지정할 수 있지만 하위 디렉터리는 허용되지 않습니다.
마운트 지점 사용자 지정은 CLI를 사용하여 RHEL 9.0 이후 버전에서만 지원됩니다. 이전 배포에서는 root
파티션만 마운트 지점으로 지정하고 크기 인수를 이미지 크기의
별칭으로 지정할 수 있습니다.
사용자 지정 이미지에 파티션이 두 개 이상 있는 경우 LVM에 사용자 지정된 파일 시스템 파티션으로 이미지를 생성하고 런타임 시 해당 파티션의 크기를 조정할 수 있습니다. 이렇게 하려면 블루프린트에서 사용자 지정 파일 시스템 구성을 지정하고 필요한 디스크 레이아웃을 사용하여 이미지를 생성할 수 있습니다. 파일 시스템 사용자 지정 없이 일반 이미지를 사용하는 경우 기본 파일 시스템 레이아웃은 변경되지 않고 cloud-init
는 루트 파티션의 크기를 조정합니다.
블루프린트는 파일 시스템 사용자 지정을 LVM 파티션으로 자동 변환합니다.
사용자 지정 파일을 사용하여 새 파일을 만들거나 기존 파일을 교체할 수 있습니다. 지정한 파일의 상위 디렉터리가 존재해야 합니다. 그렇지 않으면 이미지 빌드가 실패합니다. [customizations.directories]
사용자 지정에 지정하여 상위 디렉터리가 있는지 확인합니다.
파일 사용자 정의를 다른 청사진 사용자 정의와 결합하는 경우 다른 사용자 정의의 기능에 영향을 미치거나 현재 파일 사용자 지정을 재정의할 수 있습니다.
4.8.15.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 커밋을 배포하는 이미지
모드
,사용자
또는 그룹이
이미 설정된 디렉터리에 이미 존재하는 디렉터리 경로와 함께 customizations.directories
를 사용하면 이미지 빌드에서 기존 디렉터리의 소유권 또는 권한을 변경하지 못합니다.
4.8.15.2. 블루프린트에 사용자 지정 디렉터리 지정
[customizations.directories]
를 사용하면 다음을 수행할 수 있습니다.
- 새 디렉터리를 만듭니다.
- 생성 중인 디렉터리에 대한 사용자 및 그룹 소유권을 설정합니다.
- 8진수 형식으로 디렉터리 모드 권한을 설정합니다.
- 필요에 따라 상위 디렉터리가 생성되었는지 확인합니다.
[customizations.files]]
을 사용하여 다음을 수행할 수 있습니다.
- 새 텍스트 파일을 생성합니다.
- 기존 파일 수정 경고: 기존 콘텐츠를 덮어쓸 수 있습니다.
- 생성 중인 파일의 사용자 및 그룹 소유권을 설정합니다.
- 8진수 형식으로 모드 권한을 설정합니다.
다음 파일을 만들거나 교체할 수 없습니다.
-
/etc/fstab
-
/etc/shadow
-
/etc/passwd
-
/etc/group
다음 사용자 지정을 사용할 수 있습니다.
블루프린트에서 파일 시스템 구성을 사용자 지정합니다.
[[customizations.filesystem]] mountpoint = "MOUNTPOINT" minsize = MINIMUM-PARTITION-SIZE
MINIMUM-ECDHEITION-SIZE
값은 기본 크기 형식이 없습니다. 청사진 사용자 지정은 kB에서 TB로, TiB로 다음과 같은 값과 단위를 지원합니다. 예를 들어 마운트 지점 크기를 바이트 단위로 정의할 수 있습니다.[[customizations.filesystem]] mountpoint = "/var" minsize = 1073741824
단위를 사용하여 마운트 지점 크기를 정의합니다. 예를 들면 다음과 같습니다.
[[customizations.filesystem]] mountpoint = "/opt" minsize = "20 GiB"
[[customizations.filesystem]] mountpoint = "/boot" minsize = "1 GiB"
minsize
를 설정하여 최소 파티션을 정의합니다. 예를 들면 다음과 같습니다.[[customizations.filesystem]] mountpoint = "/var" minsize = 2147483648
[customizations.directories] :을 사용하여 이미지의
/etc
디렉터리에 사용자 지정 디렉토리를 만듭니다.[[customizations.directories]] path = "/etc/directory_name" mode = "octal_access_permission" user = "user_string_or_integer" group = "group_string_or_integer" ensure_parents = boolean
해당 항목은 다음과 같이 설명되어 있습니다.
-
Path
- Mandatory - 생성할 디렉터리의 경로를 입력합니다. 이는/etc
디렉토리 아래의 절대 경로여야 합니다. -
mode
- 선택 - 디렉터리에 대한 액세스 권한을 8진수 형식으로 설정합니다. 권한을 지정하지 않으면 기본값은 0755입니다. 선행 0은 선택 사항입니다. -
user
- 선택 - 사용자를 디렉터리의 소유자로 설정합니다. 사용자를 지정하지 않으면 기본값은root
입니다. 사용자를 문자열로 지정하거나 정수로 지정할 수 있습니다. -
group
- 선택 사항 - 그룹을 디렉터리의 소유자로 설정합니다. 그룹을 지정하지 않으면 기본값은root
입니다. 그룹을 문자열로 지정하거나 정수로 지정할 수 있습니다. -
ensure_parents
- 선택 사항 - 필요에 따라 상위 디렉터리를 생성할지 여부를 지정합니다. 값을 지정하지 않으면 기본값은false
입니다.
-
[customizations.directories] :을 사용하여 이미지의
/etc
디렉터리에 사용자 지정 파일을 만듭니다.[[customizations.files]] path = "/etc/directory_name" mode = "octal_access_permission" user = "user_string_or_integer" group = "group_string_or_integer" data = "Hello world!"
해당 항목은 다음과 같이 설명되어 있습니다.
-
Path
- Mandatory - 생성할 파일의 경로를 입력합니다. 이는/etc
디렉토리 아래의 절대 경로여야 합니다. -
Mode
Optional - 파일에 대한 액세스 권한을 8진수 형식으로 설정합니다. 권한을 지정하지 않으면 기본값은 0644입니다. 선행 0은 선택 사항입니다. -
user
- 선택 - 사용자를 파일의 소유자로 설정합니다. 사용자를 지정하지 않으면 기본값은root
입니다. 사용자를 문자열로 지정하거나 정수로 지정할 수 있습니다. -
group
- 선택 사항 - 그룹을 파일의 소유자로 설정합니다. 그룹을 지정하지 않으면 기본값은root
입니다. 그룹을 문자열로 지정하거나 정수로 지정할 수 있습니다. -
Data
- 선택 사항 - 일반 텍스트 파일의 내용을 지정합니다. 콘텐츠를 지정하지 않으면 빈 파일이 생성됩니다.
-