Ansible全局加密变量

Kan*_* Li 3 ansible ansible-playbook

假设我只有一个保险库文件,其中包含一堆我想保密的变量.有没有办法在Ansible中加载文件一次,然后全局访问所有角色和所有任务?

基本上我不喜欢在任何地方复制var_files,如下所示:

- hosts: webserver
  var_files: encrypted.yml
  roles: ....

- hosts: dbserver
  var_files: encrypted.yml
  roles: ....  
Run Code Online (Sandbox Code Playgroud)

hka*_*iti 9

您可以使用group_vars,它是根据主机所属的组自动加载的可变文件.所有主机都是该all组的成员,因此您可以将常用变量放入其中group_vars/all.

group_vars目录可以相对于(优先级递减):playbook,inventory文件或/ etc/ansible.

如果要分隔加密和未加密的公共变量,也可以将其用作目录:

  • group_vars/all/settings.yml 对于正常变量
  • group_vars/all/encrypted.yml 对于拱形的.

如果你不喜欢我选择的文件名,那就选择你自己的文件名,这没关系,只要它在all组内.