Краткий ответ : Имена файлов в каталогах group_vars и host_vars должны соответствовать именам групп и хостов соответственно. host_vars override group_vars .
Подробности : Цитирование из Организация переменных хоста и группы
"Если ваш инвентарный файл в / 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
group_vars
Хосты в инвентаре ниже не принадлежат ни к какой группе. Поэтому переменные в group_vars / secret.yaml не будут использоваться
shell> cat hosts
target1
win`
Переменные в group_vars / secret.yaml будут использоваться, когда хосты принадлежат в группу секрет , например см. ниже
shell> cat hosts
[secret]
target1
win`
Например, playbook и group_vars ниже
shell> cat playbook.yaml
- hosts: secret
tasks:
- debug:
var: ans_user
- debug:
var: ans_pass
shell> cat group_vars/secret.yaml
ans_user: group_username
ans_pass: group_pwd
give (сокращенно)
shell> ansible-playbook -i hosts playbook.yaml
ok: [target1] =>
ans_user: group_username
ok: [win] =>
ans_user: group_username
ok: [target1] =>
ans_pass: group_pwd
ok: [win] =>
ans_pass: group_pwd
host_vars
Нет хоста секрет . Поэтому файл host_vars / secret.yaml не будет использоваться. Есть только host target1 и win . Переменные хоста c будут считываться из файлов host_vars / target1.yaml и host_vars / win.yaml соответственно. Например, тот же инвентарь, playbook и group_vars с дополнительными host_vars ниже
shell> cat host_vars/target1.yaml
ans_user: target1_username
ans_pass: target1_pwd
shell> cat host_vars/win.yaml
ans_user: win_username
ans_pass: win_pwd
give (сокращенно)
shell> ansible-playbook -i hosts playbook.yaml
ok: [win] =>
ans_user: win_username
ok: [target1] =>
ans_user: target1_username
ok: [win] =>
ans_pass: win_pwd
ok: [target1] =>
ans_pass: target1_pwd
Переменные из файлов в каталоге host_vars будет переопределить переменные из файлов в каталоге group_vars .