Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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 Playbook存储在不同的目录中,但仍然能够调用它们?_Ansible_Ansible Playbook - Fatal编程技术网

如何将ansible Playbook存储在不同的目录中,但仍然能够调用它们?

如何将ansible Playbook存储在不同的目录中,但仍然能够调用它们?,ansible,ansible-playbook,Ansible,Ansible Playbook,ansible似乎假定ansible.cfg文件存在于当前工作目录中,因此当您尝试调用存在于子目录中的playbook时,它将无法加载角色和其他内容 是否可以将playbook存储在不同的目录中 请注意,ansible.cfg是源代码的一部分。根据,ansible将按以下顺序查找配置文件: ANSIBLE_CONFIG(环境变量) ansible.cfg(在当前目录中) .ansible.cfg(在主目录中) /etc/ansible/ansible.cfg 因此,如果您想从备用目录调用Pl

ansible似乎假定ansible.cfg文件存在于当前工作目录中,因此当您尝试调用存在于子目录中的playbook时,它将无法加载角色和其他内容

是否可以将playbook存储在不同的目录中

请注意,ansible.cfg是源代码的一部分。

根据,ansible将按以下顺序查找配置文件:

  • ANSIBLE_CONFIG(环境变量)
  • ansible.cfg(在当前目录中)
  • .ansible.cfg(在主目录中)
  • /etc/ansible/ansible.cfg

因此,如果您想从备用目录调用Playbook,您可以传递
ANSIBLE\u CONFIG
指向相应的
ANSIBLE.cfg

我也面临同样的问题。我想把所有的剧本放在一个单独的目录中,而不是让它们都在我的基本目录中。 My base directory受git控制,它包含一个本地ansible.cfg文件,包含以下内容:

[defaults]
inventory=hosts
roles_path=roles
通过设置roles_path ansible,在基本目录中查找roles目录,而不是playbooks的子目录。 请注意,如果您有另一个目录,其中包含您在剧本中引用的文件,则您必须按照以下要求对其进行限定:

- name: copy nagios config files
  copy:
    src: ../files/nagios3/config/
    dest: /etc/nagios3/conf.d/
    owner: root
    group: root
  notify: reload nagios
在这种情况下,playbook位于与文件目录相同级别的playbooks子目录中。 就这样,

.
├── README
├── ansible.cfg
├── files
│   └── ...
├── host_vars
│   └── ...
├── hosts
├── playbooks
│   └── ...
├── roles
│   └── ...
└── templates
    └── ...

你能分享你的目录结构吗