第 7 章 使用 Clevis 和 Tang 系统角色

7.1. Clevis 和 Tang 系统角色介绍

RHEL 系统角色是 Ansible 角色和模块的集合,可为远程管理多个 RHEL 系统提供一致的配置界面。

RHEL 8.3 引入了 Ansible 角色,用于使用 Clevis 和 Tang 自动部署基于策略解密(PBD)解决方案。rhel-system-roles 软件包包含这些系统角色、相关示例以及参考文档。

nbde_client 系统角色可让您自动部署多个 Clevis 客户端。请注意,nbde_client 角色只支持 Tang 绑定,您目前不能在 TPM2 绑定中使用它。

通过 nbde_server 角色,您可以部署和管理 Tang 服务器作为自动磁盘加密解决方案的一部分。此角色支持以下功能:

  • 轮转 Tang 密钥
  • 部署和备份 Tang 密钥

其它资源

  • 有关 Network-Bound Disk Encryption(NBDE)角色变量的详细参考,安装 rhel-system-roles 软件包,查看 README.md /usr/share/doc/rhel-system-roles/nbde_client/README.html /usr/share/doc/rhel-system-roles/nbde_server/ 目录里的文件。
  • 例如 system-roles playbook,安装 rhel-system-roles 软件包并查看 /usr/share/ansible/roles/rhel-system-roles.nbde_server/examples/ 目录。
  • 有关 RHEL 系统角色的更多信息,请参阅 RHEL 系统角色简介

7.2. 使用 nbde_server 系统角色设置多个 Tang 服务器

按照以下步骤准备并应用包含您的 Tang-server 设置的 Ansible playbook。

先决条件

流程

  1. 启用 RHEL Ansible 存储库,例如:

    # subscription-manager repos --enable ansible-2-for-rhel-8-x86_64-rpms
  2. 安装 Ansible Engine:

    # yum install ansible
  3. 安装 RHEL 系统角色:

    # yum install rhel-system-roles
  4. 准备包含 Tang 服务器设置的 playbook。您可以从头开始,或使用 /usr/share/ansible/roles/rhel-system-roles.nbde_server/examples/ 目录中的示例 playbook。

    # cp /usr/share/ansible/roles/rhel-system-roles.nbde_server/examples/simple_deploy.yml ./my-tang-playbook.yml
  5. 在您选择的文本编辑器中编辑 playbook,例如:

    # vi my-tang-playbook.yml
  6. 添加所需参数。以下示例 playbook 可确保部署 Tang 服务器和密钥轮转:

    ---
    - hosts: all
    
      vars:
        nbde_server_rotate_keys: yes
    
      roles:
        - linux-system-roles.nbde_server
  7. 应用完成的 playbook:

    # ansible-playbook -i host1,host2,host3 my-tang-playbook.yml

其它资源

  • 如需更多信息,请安装 rhel-system-roles 软件包并查看 usr/share/ansible/roles/rhel-system-roles.nbde_server/ 目录和 /usr/share/doc/rhel-system-roles/nbde_server/ 目录。

7.3. 使用 nbde_client 系统角色设置多个 Clevis 客户端

按照以下步骤准备并应用包含 Clevis-client 设置的 Ansible playbook。

注意

nbde_client 系统角色只支持 Tang 绑定。这意味着您目前无法将其用于 TPM2 绑定。

先决条件

流程

  1. 启用 RHEL Ansible 存储库,例如:

    # subscription-manager repos --enable ansible-2-for-rhel-8-x86_64-rpms
  2. 安装 Ansible Engine:

    # yum install ansible
  3. 安装 RHEL 系统角色:

    # yum install rhel-system-roles
  4. 准备包含 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
  5. 在您选择的文本编辑器中编辑 playbook,例如:

    # vi my-clevis-playbook.yml
  6. 添加所需参数。以下示例 playbook 配置 Clevis 客户端,以便在两个 Tang 服务器中至少有一个可用时自动解锁两个 LUKS 加密卷:

    ---
    - hosts: all
    
      vars:
        nbde_client_bindings:
          - device: /dev/rhel/root
            key_file: /etc/luks/keyfile
            servers:
              - http://server1.example.com
              - http://server2.example.com
          - device: /dev/rhel/swap
            key_file: /etc/luks/keyfile
            servers:
              - http://server1.example.com
              - http://server2.example.com
    
      roles:
        - linux-system-roles.nbde_client
  7. 应用完成的 playbook:

    # ansible-playbook -i host1,host2,host3 my-clevis-playbook.yml

其它资源

  • 如需了解有关该角色的参数和附加信息 nbde_client ,安装 rhel-system-roles 软件包并查看 /usr/share/doc/rhel-system-roles/nbde_client/ /usr/share/ansible/roles/rhel-system-roles.nbde_client/ 目录的详情。

为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。