linux-system-roles.nbde_client

nbde_client

ansible-lint.yml ansible-test.yml codeql.yml markdownlint.yml python-unit-test.yml shellcheck.yml tft.yml tft_citest_bad.yml woke.yml

用于配置网络绑定磁盘加密客户端(例如 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_passwordencryption_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

关于项目

Ansible role for configuring Network-Bound Disk Encryption clients (e.g. clevis)

安装
ansible-galaxy install linux-system-roles.nbde_client
许可证
mit
下载
10.5k