linux-system-roles.nbde_client
nbde_client
用于配置网络绑定磁盘加密客户端(例如 clevis)的 Ansible 角色。
该角色当前支持 clevis
作为提供者,并利用它进行加密和解密等操作。
支持的发行版
- RHEL-7+,CentOS-7+
- Fedora
限制
该角色目前只能创建 tang
绑定。TPM2 暂不支持。
角色变量
可以传给角色的变量如下:
变量 | 默认值/选择 | 描述 |
---|---|---|
nbde_client_provider |
clevis |
表示 nbde_client 角色的提供者。当前支持 clevis 。 |
nbde_client_bindings |
包含绑定配置的列表,例如设备和插槽。 | |
nbde_client_early_boot |
true |
默认情况下,nbde_client 会配置 initrd 以解锁卷。如果托管主机使用静态 IP 地址,或者卷应由 clevis-luks-askpass 解锁,则可能需要禁用此项。 |
nbde_client_bindings
nbde_client_bindings
是一个字典列表,支持以下键:
名称 | 默认值/选择 | 描述 |
---|---|---|
device |
指定托管主机上加密设备的后端设备路径。该设备在使用此角色之前必须已经配置为 LUKS 设备(必需)。 | |
encryption_password |
用于打开/解锁指定设备的有效密码或密语。建议使用 vault 加密此值。见 https://docs.ansible.com/ansible/latest/user_guide/vault.html | |
encryption_key_src |
包含用于打开/解锁指定设备的加密密钥的文件的绝对或相对路径。该角色将把此文件复制到托管节点。 | |
state |
present / absent | 指定是否应添加或删除具有所描述配置的绑定。将状态设置为 present(默认)表示将添加绑定;将状态设置为 absent 则表示将从设备/插槽中删除绑定。 |
slot |
1 |
指定用于绑定的插槽。 |
servers |
指定要绑定的服务器列表。要启用高可用性,请在此处指定多个服务器。 | |
threshold |
1 |
指定在使用多个服务器时实施 Shamir 秘密共享(SSS)方案的阈值。当使用多个服务器时,阈值指示在解密过程中,必须成功的服务器数量,以完成恢复打开设备的 LUKS 密语的过程。 |
password_temporary |
false |
如果为 true ,通过 encryption_password 或 encryption_key 参数提供的密码或密语将用于解锁设备,然后将在绑定操作完成后从 LUKS 设备中删除,即不再有效。用于设备之前使用示例密码或密语创建的情况(例如通过像 kickstart 的自动安装设置一些“默认”密码),该角色应替换为更强的密码。 |
示例:
nbde_client_bindings:
- device: /dev/sda1
encryption_key_src: /vault/keyfile
state: present
slot: 2
threshold: 1
password_temporary: false
servers:
- http://server1.example.com
- http://server2.example.com
示例剧本
示例 1:高可用性
---
- hosts: all
vars:
nbde_client_bindings:
- device: /dev/sda1
# 建议使用 vault 加密 encryption_password
# 见 https://docs.ansible.com/ansible/latest/user_guide/vault.html
encryption_password: password
servers:
- http://server1.example.com
- http://server2.example.com
roles:
- linux-system-roles.nbde_client
示例 2:删除 /dev/sda1 中插槽 2 的绑定
---
- hosts: all
vars:
nbde_client_bindings:
- device: /dev/sda1
# 建议使用 vault 加密 encryption_password
# 见 https://docs.ansible.com/ansible/latest/user_guide/vault.html
encryption_password: password
slot: 2
state: absent
roles:
- linux-system-roles.nbde_client
许可证
MIT