Red Hat Training
A Red Hat training course is available for RHEL 8
2.14. 使用 storage RHEL 系统角色创建 LUKS2 加密的卷
您可以使用 存储
角色来通过运行 Ansible playbook 创建和配置使用 LUKS 加密的卷。
先决条件
-
对一个或多个受管节点的访问和权限,这些节点是您要使用
crypto_policies
系统角色配置的系统。 - 列出受管节点的清单文件。
-
对控制节点的访问和权限,这是 Red Hat Ansible Core 配置其他系统的系统。在控制节点上,
ansible-core
和rhel-system-roles
软件包已安装。
RHEL 8.0-8.5 提供对基于 Ansible 的自动化需要 Ansible Engine 2.9 的独立 Ansible 存储库的访问权限。Ansible Engine 包含命令行实用程序,如 ansible
、ansible-playbook
、连接器(如 docker
和 podman
)以及许多插件和模块。有关如何获取和安装 Ansible Engine 的详情,请参考 如何下载和安装 Red Hat Ansible Engine 知识库文章。
RHEL 8.6 和 9.0 引入了 Ansible Core(作为 ansible-core
软件包提供),其中包含 Ansible 命令行工具、命令以及小型内置 Ansible 插件。RHEL 通过 AppStream 软件仓库提供此软件包,它有一个有限的支持范围。如需更多信息,请参阅 RHEL 9 和 RHEL 8.6 及更新的 AppStream 软件仓库文档中的 Ansible Core 软件包的支持范围。
流程
使用以下内容创建一个新的
playbook.yml
文件:- hosts: all vars: storage_volumes: - name: barefs type: disk disks: - sdb fs_type: xfs fs_label: label-name mount_point: /mnt/data encryption: true encryption_password: your-password roles: - rhel-system-roles.storage
您还可以在 playbook.yml 文件中添加其他加密参数,如
encryption_key
、encryption_cipher
、encryption_key_size
和encryption_luks
版本。可选:验证 playbook 语法:
# ansible-playbook --syntax-check playbook.yml
在清单文件上运行 playbook:
# ansible-playbook -i inventory.file /path/to/file/playbook.yml
验证
查看加密状态:
# cryptsetup status sdb /dev/mapper/sdb is active and is in use. type: LUKS2 cipher: aes-xts-plain64 keysize: 512 bits key location: keyring device: /dev/sdb [...]
验证创建的 LUKS 加密的卷:
# cryptsetup luksDump /dev/sdb Version: 2 Epoch: 6 Metadata area: 16384 [bytes] Keyslots area: 33521664 [bytes] UUID: a4c6be82-7347-4a91-a8ad-9479b72c9426 Label: (no label) Subsystem: (no subsystem) Flags: allow-discards Data segments: 0: crypt offset: 33554432 [bytes] length: (whole device) cipher: aes-xts-plain64 sector: 4096 [bytes] [...]
查看
playbook.yml
文件中的cryptsetup
参数,storage
角色支持此参数:# cat ~/playbook.yml - hosts: all vars: storage_volumes: - name: foo type: disk disks: - nvme0n1 fs_type: xfs fs_label: label-name mount_point: /mnt/data encryption: true #encryption_password: passwdpasswd encryption_key: /home/passwd_key encryption_cipher: aes-xts-plain64 encryption_key_size: 512 encryption_luks_version: luks2 roles: - rhel-system-roles.storage
其他资源
- 使用 LUKS 加密块设备
-
/usr/share/ansible/roles/rhel-system-roles.storage/README.md
文件