Согласно https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#organizing -host-and-group-variables :
Ansible загружает файлы переменных хоста и группы, выполняя поиск путей относительно файла инвентаризации или файл playbook. Если ваш файл инвентаря в / etc / ansible / hosts содержит хост с именем 'foosball', который принадлежит к двум группам, 'raleigh' и 'webservers', этот хост будет использовать переменные в файлах YAML в следующих местах:
/etc/ansible/group_vars/raleigh # can optionally end in '.yml', '.yaml', or '.json'
/etc/ansible/group_vars/webservers
/etc/ansible/host_vars/foosball
Вы также можете создавать каталоги, названные в честь ваших групп или хостов. Ansible прочитает все файлы в этих каталогах в лексикографическом порядке. Пример с группой raleigh:
/etc/ansible/group_vars/raleigh/db_settings
/etc/ansible/group_vars/raleigh/cluster_settings
В вашем случае папка environment
- это имя группы. Поскольку у вас нет группы environment
, она не используется. Кроме того, группы с именами uat1
и uat2
не существуют, поскольку запасы не являются группами.
Групповые переменные all
работают, потому что это специальная группа по умолчанию:
Есть две группы по умолчанию: все и разгруппированные. Группа all содержит каждый хост.
Похоже, вы хотите иметь набор переменных для каждого инвентаря. Что вы можете сделать в этом случае, так это установить переменные в инвентаре для группы all
:
[all:vars]
modern="re run"
[server a]
12.12.12.12
[server b]
13.13.131.1
, которые применили бы modern
var ко всем хостам в этом c инвентаре.
В качестве альтернативы, если вы уже используете две инвентаризации, более похожие на группы, вы можете рассмотреть возможность объединения хостов в единую инвентаризацию и создания групп uat1
и uat2
, например:
[server a]
12.12.12.12
1.1.1.2
[server b]
13.13.131.1
2.23.12.5
[uat1]
12.12.12.12
13.13.131.1
[uat2]
1.1.1.2
2.23.12.5
В этом случае у вас могут быть файлы group_vars/uat1
и group_vars/uat2
.
Надеюсь, эти две идеи дадут вам лучшее представление о том, как использовать группы и групповые переменные.