8장. 엣지 간소화 설치 관리자 이미지에 RHEL용 Ignition 툴 사용
RHEL for Edge는 Ignition 도구를 사용하여 부팅 프로세스의 초기 단계에서 이미지에 사용자 구성을 삽입합니다. Ignition 툴이 삽입하는 사용자 구성은 다음과 같습니다.
- 사용자 구성입니다.
-
일반 파일 및
systemd장치와 같은 파일 작성.
첫 번째 부팅 시 Ignition은 원격 URL 또는 간소화된 설치 프로그램 ISO에 포함된 파일에서 구성을 읽습니다. 그런 다음 Ignition이 해당 구성을 이미지에 적용합니다.
8.1. Ignition 구성 파일 생성 링크 복사링크가 클립보드에 복사되었습니다!
Butane 툴은 Ignition 구성 파일을 생성하는 데 선호되는 옵션입니다. Butane 은 Butane Config YAML 파일을 사용하고 JSON 형식으로 Ignition 구성을 생성합니다. JSON 파일은 첫 번째 부팅 시 시스템에서 사용됩니다. Ignition 구성은 사용자 생성 및 systemd 장치 설치와 같은 이미지의 구성을 적용합니다.
사전 요구 사항
Butane 툴 버전 v0.17.0을 설치했습니다.
sudo dnf/yum install -y butane
$ sudo dnf/yum install -y butaneCopy to Clipboard Copied! Toggle word wrap Toggle overflow
절차
Butane Config파일을 생성하여.bu형식으로 저장합니다. RHEL의 경우변형항목을r4e,version항목을1.0.0으로 지정해야 합니다. 버전 1.0.0의 butaner4e변형은 Ignition 사양 버전3.3.0을 대상으로 합니다. 다음은 Butane Config YAML 파일 예제입니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
Butane Config YAML파일을 사용하고 JSON 형식으로 Ignition 구성을 생성합니다../path/butane example.bu {"ignition":{"config":{"merge":[{"source":"http://192.168.122.1:8000/sample.ign"}]},"timeouts":{"httpTotal":30},"version":"3.3.0"},"passwd":{"users":[{"groups":["wheel"],"name":"core","passwordHash":"password_hash_here","sshAuthorizedKeys":["ssh-ed25519 some-ssh-key-here"]}]},"storage":{"files":[{"path":"/etc/NetworkManager/system-connections/enp1s0.nmconnection","contents":{"compression":"gzip","source":"data:;base64,H4sIAAAAAAAC/0yKUcrCMBAG3/csf/ObUKQie5LShyX5SgPNNiSr0NuLgiDzNMPM8VBFtHzoQjkxtPp+ITsrGLahKYyyGtoqEYNKwfeZc32OC0lKDb179rfg/HVyPgQ3hv8w/v0WT0k7T+7D/S1Dh7S4MRU5h1XyzqvsHVRg25G4iD5kp1cAAAD//6Cvq2ihAAAA"},"mode":384},{"path":"/usr/local/bin/startup.sh","contents":{"source":"data:;base64,IyEvYmluL2Jhc2gKZWNobyAiSGVsbG8sIFdvcmxkISIK"},"mode":493}]},"systemd":{"units":[{"contents":"[Unit]\nDescription=A hello world\n[Install]\nWantedBy=multi-user.target","enabled":true,"name":"hello.service"},{"dropins":[{"contents":"[Service]\nEnvironment=LOG_LEVEL=trace\n","name":"log_trace.conf"}],"name":"fdo-client-linuxapp.service"}]}}$ ./path/butane example.bu {"ignition":{"config":{"merge":[{"source":"http://192.168.122.1:8000/sample.ign"}]},"timeouts":{"httpTotal":30},"version":"3.3.0"},"passwd":{"users":[{"groups":["wheel"],"name":"core","passwordHash":"password_hash_here","sshAuthorizedKeys":["ssh-ed25519 some-ssh-key-here"]}]},"storage":{"files":[{"path":"/etc/NetworkManager/system-connections/enp1s0.nmconnection","contents":{"compression":"gzip","source":"data:;base64,H4sIAAAAAAAC/0yKUcrCMBAG3/csf/ObUKQie5LShyX5SgPNNiSr0NuLgiDzNMPM8VBFtHzoQjkxtPp+ITsrGLahKYyyGtoqEYNKwfeZc32OC0lKDb179rfg/HVyPgQ3hv8w/v0WT0k7T+7D/S1Dh7S4MRU5h1XyzqvsHVRg25G4iD5kp1cAAAD//6Cvq2ihAAAA"},"mode":384},{"path":"/usr/local/bin/startup.sh","contents":{"source":"data:;base64,IyEvYmluL2Jhc2gKZWNobyAiSGVsbG8sIFdvcmxkISIK"},"mode":493}]},"systemd":{"units":[{"contents":"[Unit]\nDescription=A hello world\n[Install]\nWantedBy=multi-user.target","enabled":true,"name":"hello.service"},{"dropins":[{"contents":"[Service]\nEnvironment=LOG_LEVEL=trace\n","name":"log_trace.conf"}],"name":"fdo-client-linuxapp.service"}]}}Copy to Clipboard Copied! Toggle word wrap Toggle overflow Butane Config YAML파일을 실행하여Ignition 구성 JSON파일을 확인하고 생성한 후 파티션과 같이 지원되지 않는 필드를 사용할 때 경고를 받을 수 있습니다. 예를 들면 다음과 같습니다. 해당 필드를 수정하고 검사를 다시 실행할 수 있습니다.
이제 청사진을 사용자 지정하는 데 사용할 수 있는 Ignition JSON 구성 파일이 있습니다.