У меня есть доступный файл 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 будут иметь несколько хостов, не являющихся общими.