Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ansible/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/pandas/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible全局加密变量_Ansible_Ansible Playbook - Fatal编程技术网

Ansible全局加密变量

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

假设我只有一个vault文件,其中包含一组我想保密的变量。有没有办法在Ansible中只加载一次文件,然后对所有角色和所有任务进行全局访问

基本上,我不喜欢到处复制var_文件,如下所示:

- 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应用程序。