17.10. 使用 storage RHEL 系统角色创建 LUKS2 加密卷


您可以通过运行 Ansible Playbook,使用 存储 角色来创建和配置使用 LUKS 加密的卷。

先决条件

流程

  1. 将敏感变量存储在加密的文件中:

    1. 创建 vault :

      $ ansible-vault create ~/vault.yml
      New Vault password: <vault_password>
      Confirm New Vault password: <vault_password>
      Copy to Clipboard Toggle word wrap
    2. ansible-vault create 命令打开编辑器后,以 <key>: <value> 格式输入敏感数据:

      luks_password: <password>
      Copy to Clipboard Toggle word wrap
    3. 保存更改,并关闭编辑器。Ansible 加密 vault 中的数据。
  2. 创建一个包含以下内容的 playbook 文件,如 ~/playbook.yml

    ---
    - name: Manage local storage
      hosts: managed-node-01.example.com
      vars_files:
        - ~/vault.yml
      tasks:
        - name: Create and configure a volume encrypted with LUKS
          ansible.builtin.include_role:
            name: redhat.rhel_system_roles.storage
          vars:
            storage_volumes:
              - name: barefs
                type: disk
                disks:
                  - sdb
                fs_type: xfs
                fs_label: <label>
                mount_point: /mnt/data
                encryption: true
                encryption_password: "{{ luks_password }}"
                encryption_cipher: <cipher>
                encryption_key_size: <key_size>
                encryption_luks_version: luks2
    Copy to Clipboard Toggle word wrap

    示例 playbook 中指定的设置包括如下:

    encryption_cipher: <cipher>
    指定 LUKS 密码。可能的值有: twofish-xts-plain64,serpent-xts-plain64, 和 aes-xts-plain64 (默认)。
    encryption_key_size: &lt ;key_size>
    指定 LUKS 密钥大小。默认值为 512 位。
    encryption_luks_version: luks2
    指定 LUKS 版本。默认为 luks2

    有关 playbook 中使用的所有变量的详情,请查看控制节点上的 /usr/share/ansible/roles/rhel-system-roles.storage/README.md 文件。

  3. 验证 playbook 语法:

    $ ansible-playbook --ask-vault-pass --syntax-check ~/playbook.yml
    Copy to Clipboard Toggle word wrap

    请注意,这个命令只验证语法,不能防止错误的、但有效的配置。

  4. 运行 playbook:

    $ ansible-playbook --ask-vault-pass ~/playbook.yml
    Copy to Clipboard Toggle word wrap

验证

  • 验证创建的 LUKS 加密的卷:

    # ansible managed-node-01.example.com -m command -a 'cryptsetup luksDump /dev/sdb'
    
    LUKS header information
    Version: 2
    Epoch: 3
    Metadata area: 16384 [bytes]
    Keyslots area: 16744448 [bytes]
    UUID: bdf6463f-6b3f-4e55-a0a6-1a66f0152a46
    Label: (no label)
    Subsystem: (no subsystem)
    Flags: (no flags)
    
    Data segments:
    0: crypt
    offset: 16777216 [bytes]
    length: (whole device)
    cipher: aes-cbc-essiv:sha256
    sector: 512 [bytes]
    
    Keyslots:
    0: luks2
    Key: 256 bits
    Priority: normal
    Cipher: aes-cbc-essiv:sha256
    Cipher key: 256 bits
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat