Есть ли способ получить доступ к vars хоста/группы изнутри custom written module? Я хотел бы избежать передачи всех необходимых параметров в качестве параметров модуля.Ansible: Доступ к хостам/группам vars из пользовательского модуля
Мой модуль написан на Python, и я использую шаблон. Я проверил довольно много все доступные ВАР, но они нигде не хранятся:
def main():
pprint(dir())
pprint(globals())
pprint(locals())
for name in vars().keys():
print(name)
Теперь моя единственная надежда, что они каким-то образом доступны через недокументированные утилитами модуля.
Я предполагаю, что это не представляется возможным, так как модуль работает на целевой машине и, вероятно, факты/принимающей группы вары/не передаются вместе с модулем ...
Редактировать: Найден module utils сейчас, и не выглядит многообещающим.
Это очень интересно! Сейчас это не вариант, потому что для этого потребуется дополнительный узел redis, доступный из локального поля и удаленного окна. Это слишком много накладных расходов. Но мы можем реализовать его таким образом позже, когда у нас будет больше автоматизации с Ansible. Кэширование фактов - это то, что мы, вероятно, захотим в любом случае позже. Я приму свой ответ - хотя это не оптимальное решение, оно кажется лучшим. – udondan
Вы можете просто установить redis на существующий сервер. redis очень легкий, поэтому дополнительный сервер не требуется. –
Ну, здесь это немного сложнее.Работа с несколькими тысячами хостов в 8 колодах с несколькими отдельными vlans в каждом. Мы только начинаем с Ansible. Прямо сейчас это потребует слишком много усилий, но очевидно, что в будущем нам нужно кэширование фактов, и это должно быть очень легко реализовать. – udondan