![Ansible - 没有子目录的扁平配置文件](https://linux22.com/image/717955/Ansible%20-%20%E6%B2%A1%E6%9C%89%E5%AD%90%E7%9B%AE%E5%BD%95%E7%9A%84%E6%89%81%E5%B9%B3%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6.png)
是否可以使用包含多个部分的配置文件而不是全新的目录?
即:
/etc/ansible/roles/main.yml
将包含如下内容:
[tasks]
-name: install ntp
yum: pkg=ntp state=installed
notify: restart-ntp
[handlers]
- name: restart-ntp
service: name=ntp state=reloaded
类似地,对于 group_vars 和 host_vars,我可以将所有变量放在一个文件中,而不必为每个组和主机创建一个单独的文件吗?
答案1
你能将所有变量放在一个文件中,但您将失去 Ansible 为您提供的所有层次结构和范围,包括主机、组、角色、播放等。当然,您可以尝试复制用平面文件就可以做到这一点,但是...为什么? Ansible 已经免费为您提供了此功能。此外,很可能没有其他人(包括将来的您)能够理解您的代码,但仍然可以重用它。
因此,虽然答案是技术上 是的,我同意@techraf 的观点不, 这不可能。
如果你发现编写文件很乏味,可以使用ansible-galaxy init
生成器来充实角色。(见https://docs.ansible.com/ansible/latest/reference_appendices/galaxy.html#create-roles)