11.18. 使用 nbde_client RHEL 系统角色建立多个 Clevis 客户端
使用 nbde_client
RHEL 系统角色,您可以在多个系统上准备并应用包含 Clevis 客户端设置的 Ansible playbook。
nbde_client
系统角色只支持 Tang 绑定。这意味着您目前无法将其用于 TPM2 绑定。
先决条件
- 您已准备好控制节点和受管节点
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接到受管节点的帐户具有
sudo
权限。 - 要在其上运行此 playbook 的受管节点或受管节点组列在 Ansible 清单文件中。
步骤
准备包含用于 Clevis 客户端设置的 playbook。您可以从头开始,或使用
/usr/share/ansible/roles/rhel-system-roles.nbde_client/examples/
目录中的一个 playbook 示例。# cp /usr/share/ansible/roles/rhel-system-roles.nbde_client/examples/high_availability.yml ~/my-clevis-playbook.yml
在您选择的文本编辑器中编辑 playbook,例如:
# vi ~/my-clevis-playbook.yml
添加所需参数。以下 playbook 示例配置 Clevis 客户端,以便在两个 Tang 服务器中至少有一个可用时自动解锁两个 LUKS 加密卷:
--- - 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
验证 playbook 语法:
# ansible-playbook ~/my-clevis-playbook.yml --syntax-check
请注意,这个命令只验证语法,不会防止错误但有效的配置。
应用完成的 playbook:
# ansible-playbook ~/my-clevis-playbook.yml
当前 nbde_client
系统角色只支持动态主机配置协议(DHCP)的场景。要将 NBDE 用于具有静态 IP 配置的客户端,请执行以下一个操作:
将网络配置传给
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 磁盘镜像。
您还可以在 playbook 中添加以下代码片段:
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
。
其他资源
-
有关 NBDE 客户端系统角色的参数和附加信息,请安装
rhel-system-roles
软件包,并查看/usr/share/doc/rhel-system-roles/nbde_client/
和/usr/share/ansible/roles/rhel-system-roles.nbde_client/
目录。 - 期待 Red Hat Enable Sysadmin 上有关初始 ramdisk (initrd)中 Linux 网络配置的文章