Ansible: ограничение групповых переменных группами групп

У меня есть доступный файл hosts, который выглядит так:

[myhosts]
192.168.0.1
192.168.0.2

[group1:children]
myhosts

[group2:children]
myhosts

Наряду с файлами group vars для group1 и group2 (и, кстати, для myhosts), которые объявляют некоторые общие переменные но с разными значениями.

Вот мой макет каталога (который соответствует лучшим приемам) :

hosts
main.yml
group_vars/
    group1.yml
    group2.yml
    myhosts.yml

Таким образом, оба файла group vars для group1 и group2 автоматически включаются ansible, когда узел принадлежит обеим группам.

Для записи, я вызываю ansible в моем playblook с помощью следующего шаблона как цель (указана в командной строке):

192.168.0.1:&group1

Учитывая это, как я могу сделать доступным включение только файла group vars, связанного с group1 (и дочерней группой myhosts)? Это возможно ?

Альтернативным решением было бы переименовать файлы group vars для group1 и group2 во что-то другое (чтобы предотвратить автоматическое включение) и включить их в отдельные " прокси, специфичные для каждой подгруппы, но мне это кажется менее чистым.

Примечание: на данный момент это не так, но в будущем вполне вероятно, что group1 и group2 будут иметь несколько хостов, не являющихся общими.


person Wexiwa    schedule 26.07.2017    source источник


Ответы (1)


Значение hosts воспроизведения - это способ установить целевые хосты воспроизведения, но это не просмотр для этих хостов.
Если хост принадлежит для нескольких групп он всегда загружает переменные из group_vars всех этих групп, а не только из указанной в игре.

person zigarn    schedule 26.07.2017
comment
Итак, мне нужно сделать то, что я написал в своем вопросе? т.е. иметь две пьесы, каждая из которых включает / определяет конкретные переменные, которые я хочу для игры - person Wexiwa; 26.07.2017
comment
У меня действительно нет решения. Вы должны реорганизовать свои группы, чтобы хосты не принадлежали к 2 группам с разными значениями для одних и тех же варов. - person zigarn; 26.07.2017