我正在尝试使用保险库来加密敏感信息。我们可以在playbook任务中使用保险库保护变量吗?如果是的话,有人可以提供一些不错的例子吗?
这就是我所做的:
1:创建角色目录结构
2:创建了包含以下数据的groups_vars / vars文件
mysql_port:3306
mysql_host:10.0.0.3
mysql_user:fred
执行以下命令以创建加密文件
ansible-vault create group_vars / vault
以下数据
vault_ear_password:supersecretpassword
这是最终的目录结构
├──。 。
├──group_vars/
│└──数据库/
│├──vars
│└──vault
└──。 。
现在在group_vars / vars文件中,我有以下条目
ear_password:“{{vault_ear_password}}”
现在,我的查询是,我们不能在剧本中使用变量{{ear_password}},以便我可以获得以下值:supersecretpassword
答案 0 :(得分:1)
是的,您可以通过这种方式使用保险库中的变量。
问题在于您的目录结构:如果您希望为所有主机定义此变量,则应将vars
和vault
文件放入group_vars/all/
目录中,或者放置它们在group_vars/<group_name>/
目录下为特定组定义它们(如示例中的database
)。
在当前目录结构中,vars
文件中的变量转到名为vars
的组,vault
文件中的变量转到名称为vault
的组。