设置组变量位置?

时间:2019-07-24 12:16:08

标签: ansible

我的理解是,组和主机var可以放在根目录ansible下。

根据以下内容,在group_vars所在的位置,剧本返回一个错误,指出无法找到vars。如果我将其移至清单文件夹,则一切正常。

tree .
.
├── ansible.cfg
├── group_vars
│   └── all.yaml
├── inventory
│   ├── host_vars
│   │   ├── access1.yaml
│   │   ├── access2.yaml
│   │   └── aggr1.yaml
│   └── test
├── playbooks
│   ├── site.retry
│   └── site.yaml
└── README.md

所有其他指南在根目录中显示host_vars / group_vars吗? 我需要更新或检查设置以允许此设置吗?

编辑: ansible.cfg如下所示:

[defaults]
gathering = explicit
Inventory = ./inventory/test
retry_files_enabled = False
Host_key_checking = false
Timeout = 5

[persistent_connection]
connect_timeout = 30
command_timeout = 30

1 个答案:

答案 0 :(得分:0)

请参阅https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#organizing-host-and-group-variables

中的第一个技巧

group_vars /和host_vars /目录可以存在于剧本目录或清单目录中。如果两个路径都存在,则playbook目录中的变量将覆盖清单目录中设置的变量。

因此,您可以将ansible.cfg配置为使用./中的清单文件,然后group_vars和host_vars也可以存在于此目录中。您的清单文件位于./inventory/目录下,而不是./目录下。