Ansible全局加密变量
假设我只有一个vault文件,其中包含一组我想保密的变量。有没有办法在Ansible中只加载一次文件,然后对所有角色和所有任务进行全局访问 基本上,我不喜欢到处复制var_文件,如下所示:Ansible全局加密变量,ansible,ansible-playbook,Ansible,Ansible Playbook,假设我只有一个vault文件,其中包含一组我想保密的变量。有没有办法在Ansible中只加载一次文件,然后对所有角色和所有任务进行全局访问 基本上,我不喜欢到处复制var_文件,如下所示: - hosts: webserver var_files: encrypted.yml roles: .... - hosts: dbserver var_files: encrypted.yml roles: .... 不,在您的示例中,一个文件中有两个Ansible剧本,Ansib
- hosts: webserver
var_files: encrypted.yml
roles: ....
- hosts: dbserver
var_files: encrypted.yml
roles: ....
不,在您的示例中,一个文件中有两个Ansible剧本,Ansible中没有更高级别的抽象(高于剧本) 我真的不知道这真的有效!但我相信每个文件都有一个剧本只是一个普遍的好做法。毕竟,当您运行它时,您使用的是
ansible playbook
而不是ansible playbook
<>这与文件中有两个剧本无关,但是如果你关心安全性,你应该考虑使用(new in 1.5)你可以使用,这些变量文件是根据主机是一个成员的组自动加载的。所有主机都是All
组的成员,因此您可以将公共变量放入group\u vars/All
组变量目录可以相对于(优先级降低):剧本、库存文件或/etc/ansible
如果要分离加密和未加密的公共变量,也可以将其用作目录:
- 正常变量的
组变量/all/settings.yml
用于保险存储的group\u vars/all/encrypted.yml
all
组下即可。示例文件在剧本中有两个剧本,而不是一个文件中有两个剧本。在一个剧本中有多个剧本是完全合理的,例如,您可能有一个剧本来设置web服务器,然后是另一个剧本来设置db服务器(如示例中所示),其中两组服务器一起工作以提供特定的web应用程序。