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