我正在寻找一种在 Ubuntu/Debian Linux 服务器上使用 Ansible 自动设置加密分区的方法。
假设具有现有根的计算机填满了整个磁盘
从这个分区中切出一块并用它做一个新的分区
使用 LUKS 或 Truecrypt 加密分区
将密码短语作为剧本的输入
我对 Ansible 很陌生,所以如果有人能指出从哪里开始(现有磁盘分区角色、加密磁盘角色等)。我可以用 Ansible 驱动 fdisk 吗?如何确保角色不会尝试创建分区两次(再次运行配置时)。
我正在寻找一种在 Ubuntu/Debian Linux 服务器上使用 Ansible 自动设置加密分区的方法。
假设具有现有根的计算机填满了整个磁盘
从这个分区中切出一块并用它做一个新的分区
使用 LUKS 或 Truecrypt 加密分区
将密码短语作为剧本的输入
我对 Ansible 很陌生,所以如果有人能指出从哪里开始(现有磁盘分区角色、加密磁盘角色等)。我可以用 Ansible 驱动 fdisk 吗?如何确保角色不会尝试创建分区两次(再次运行配置时)。
编写一个执行此操作的 Ansible 角色并不像看起来那么容易,当您想要正确地完成它时(例如,幂等和健壮)。我知道,因为我刚刚写/重写了一个:)
https://docs.debops.org/en/master/ansible/roles/cryptsetup/index.html
它能够处理您想要的 3 个功能中的 2 个:
我决定不支持为角色本身创建分区以降低复杂性。
虽然我没有亲自编写任何剧本来完成您正在尝试做的事情,但这里有一些资源可能会有所帮助:
您可以使用几个 Ansible 模块来管理分区:
可能还有一些对您有用的系统模块here
没有专门用于 fdisk 的 ansible 模块,但您仍然应该能够使用 command 或 shell 模块运行 fdisk 命令。如果你走这条路,你将不得不自己弄清楚如何使它具有幂等性。
如果您正在寻找角色,我通常会推荐Ansible Galaxy,但通过快速搜索,我无法找到与您正在尝试做的事情相关的任何角色。
我知道没有专门用于使用 LUKS 或 Truecrypt 的 Ansible 模块,但您仍然应该能够使用命令或 shell 模块运行这些任务。
我能够在这本剧本中找到一个不错的磁盘加密示例。playbook 通过将密码作为变量传入来处理密码。有几种方法可以处理剧本中的变量。我建议阅读有关变量的 Ansible 文档。如果您将密码存储为变量,您还可以使用Ansible Vault加密您的变量文件。