Ansible - 没有子目录的扁平配置文件

Ansible - 没有子目录的扁平配置文件

是否可以使用包含多个部分的配置文件而不是全新的目录?

即: /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

相关内容