如何将ansible Playbook存储在不同的目录中,但仍然能够调用它们?
ansible似乎假定ansible.cfg文件存在于当前工作目录中,因此当您尝试调用存在于子目录中的playbook时,它将无法加载角色和其他内容 是否可以将playbook存储在不同的目录中 请注意,ansible.cfg是源代码的一部分。根据,ansible将按以下顺序查找配置文件:如何将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_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
└── ...
你能分享你的目录结构吗