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
절차
Butane Config
파일을 생성하여.bu
형식으로 저장합니다. RHEL의 경우변형
항목을r4e
,version
항목을1.0.0
으로 지정해야 합니다. 버전 1.0.0의 butaner4e
변형은 Ignition 사양 버전3.3.0
을 대상으로 합니다. 다음은 Butane Config YAML 파일 예제입니다.variant: r4e version: 1.0.0 ignition: config: merge: - source: http://192.168.122.1:8000/sample.ign passwd: users: - name: core groups: - wheel password_hash: password_hash_here ssh_authorized_keys: - ssh-ed25519 some-ssh-key-here storage: files: - path: /etc/NetworkManager/system-connections/enp1s0.nmconnection contents: inline: | [connection] id=enp1s0 type=ethernet interface-name=enp1s0 [ipv4] address1=192.168.122.42/24,192.168.122.1 dns=8.8.8.8; dns-search= may-fail=false method=manual mode: 0600 - path: /usr/local/bin/startup.sh contents: inline: | #!/bin/bash echo "Hello, World!" mode: 0755 systemd: units: - name: hello.service contents: | [Unit] Description=A hello world [Install] WantedBy=multi-user.target enabled: true - name: fdo-client-linuxapp.service dropins: - name: log_trace.conf contents: | [Service] Environment=LOG_LEVEL=trace
다음 명령을 실행하여
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"}]}}
Butane Config YAML
파일을 실행하여Ignition 구성 JSON
파일을 확인하고 생성한 후 파티션과 같이 지원되지 않는 필드를 사용할 때 경고를 받을 수 있습니다. 예를 들면 다음과 같습니다. 해당 필드를 수정하고 검사를 다시 실행할 수 있습니다.
이제 청사진을 사용자 지정하는 데 사용할 수 있는 Ignition JSON 구성 파일이 있습니다.
추가 리소스