这里 有一句话:
提示:在 Ansible 1.2 或更高版本中,group_vars/ 和 host_vars/ 目录可以存在于 playbook 目录或 inventory 目录中。如果两个路径都存在,则 playbook 目录中的变量将覆盖清单目录中设置的变量。
我该如何定义:
- 剧本目录
- 库存目录
我不知道这种配置,似乎在我使用 Ansible 的过程中,我总是有一个目录,它同时位于 playbook 目录和库存目录中,但这种分离可能很有用。
这里 有一句话:
提示:在 Ansible 1.2 或更高版本中,group_vars/ 和 host_vars/ 目录可以存在于 playbook 目录或 inventory 目录中。如果两个路径都存在,则 playbook 目录中的变量将覆盖清单目录中设置的变量。
我该如何定义:
我不知道这种配置,似乎在我使用 Ansible 的过程中,我总是有一个目录,它同时位于 playbook 目录和库存目录中,但这种分离可能很有用。
您可以通过指向文件、脚本或目录来指定清单:
在命令行中:
ansible-playbook playbook.yml -i /path/to/inventory
inventory = /path/to/inventory
无论您使用哪个选项,库存目录都将是存储使用过的库存文件的目录。
而剧本目录只是存储剧本的目录。
@Miklos Kosarkar,我知道这是一篇旧帖子,但从未有人回答。默认情况下,Ansible 在查找清单文件时会忽略某些文件扩展名。这是在 ansible.cfg 的 [inventory] 部分中设置的。
[inventory]
# enable inventory plugins, default: 'host_list', 'script', 'auto', 'yaml', 'ini', 'toml'
#enable_plugins = host_list, virtualbox, yaml, constructed
# ignore these extensions when parsing a directory as inventory source
#ignore_extensions = .pyc, .pyo, .swp, .bak, ~, .rpm, .md, .txt, ~, .orig, .ini, .cfg, .retry
# ignore files matching these patterns when parsing a directory as inventory source
#ignore_patterns=
# If 'true' unparsed inventory sources become fatal errors, they are warnings otherwise.
#unparsed_is_failed=False