18.3. nbde_client RHEL 시스템 역할을 사용하여 여러 Clevis 클라이언트 설정
nbde_client RHEL 시스템 역할을 사용하면 여러 시스템에서 Clevis 클라이언트 설정이 포함된 Ansible 플레이북을 준비하고 적용할 수 있습니다.
nbde_client 시스템 역할은 Tang 바인딩만 지원합니다. 즉, 현재 TPM2 바인딩에 사용할 수 없습니다.
사전 요구 사항
-
nbde_client시스템 역할로 구성하려는 시스템인 하나 이상의 관리 노드에 대한 액세스 및 권한. - Red Hat Ansible Core가 기타 시스템을 구성하는 시스템인 제어 노드 액세스 및 사용 권한.
- Ansible Core 패키지는 컨트롤 시스템에 설치되어 있어야 합니다.
-
rhel-system-roles패키지는 플레이북을 실행하려는 시스템에 설치되어 있어야 합니다.
절차
Clevis 클라이언트에 대한 설정을 포함하는 플레이북을 준비합니다. 처음부터 시작하거나
/usr/share/ansible/roles/rhel-system-roles.nbde_client/examples/디렉터리의 예제 플레이북 중 하나를 사용할 수 있습니다.# cp /usr/share/ansible/roles/rhel-system-roles.nbde_client/examples/high_availability.yml ./my-clevis-playbook.yml선택한 텍스트 편집기에서 플레이북을 편집합니다. 예를 들면 다음과 같습니다.
# vi my-clevis-playbook.yml필수 매개 변수를 추가합니다. 다음 예제 플레이북은 두 개 이상의 Tang 서버 중 하나를 사용할 수 있을 때 두 개의 LUKS 암호화 볼륨의 잠금 해제를 자동화하도록 Clevis 클라이언트를 구성합니다.
--- - hosts: all vars: nbde_client_bindings: - device: /dev/rhel/root encryption_key_src: /etc/luks/keyfile servers: - http://server1.example.com - http://server2.example.com - device: /dev/rhel/swap encryption_key_src: /etc/luks/keyfile servers: - http://server1.example.com - http://server2.example.com roles: - rhel-system-roles.nbde_client완료된 플레이북을 적용합니다.
# ansible-playbook -i host1,host2,host3 my-clevis-playbook.yml
현재 nbde_client 시스템 역할은 DHCP(Dynamic Host Configuration Protocol)가 있는 시나리오만 지원합니다. 고정 IP 구성이 있는 클라이언트에 NBDE를 사용하려면 다음 작업 중 하나를 수행합니다.
네트워크 구성을
dracut명령에 전달합니다. 예를 들면 다음과 같습니다.# dracut -fv --regenerate-all --kernel-cmdline "ip=192.0.2.10::192.0.2.1:255.255.255.0::ens3:none"또는 정적 네트워크 정보를 사용하여
/etc/dracut파일을 만듭니다. 예를 들면 다음과 같습니다..conf.d/ 디렉터리에 .conf# cat /etc/dracut.conf.d/static_ip.conf kernel_cmdline="ip=192.0.2.10::192.0.2.1:255.255.255.0::ens3:none"그런 다음 초기 RAM 디스크 이미지를 다시 생성합니다.
다음 스니펫을 플레이북에 추가할 수도 있습니다.
tasks: - name: Configure a client with a static IP address during early boot ansible.builtin.command: cmd: grubby --update-kernel=ALL --args='GRUB_CMDLINE_LINUX_DEFAULT="ip={{ <ansible_default_ipv4.address> }}::{{ <ansible_default_ipv4.gateway> }}:{{ <ansible_default_ipv4.netmask> }}::{{ <ansible_default_ipv4.alias> }}:none"'이전 코드 조각에서 <
ansible_default_ipv4.*> 문자열을 네트워크의 IP 주소로 바꿉니다(예:ip={{ 192.0.2.10 }}:{{ 192.0.2.1 }}:{{ 255.255.255.0 }}::{{ ens3 }}:none).