Учитывая пьесу
---
- hosts:
some_host_group
roles:
- foo
- bar
Я хотел бы получить список всех переменных, которые необходимо определить в playbook. Что-то вроде:
# playbook-requires myplaybook.yml
Для более сложных (или просто многочисленных) пьес это может пригодиться. Прежде чем приступить к написанию такой утилиты, я хотел бы убедиться, что не изобретаю колесо заново.
Быстрый поиск в Google показывает множество решений для противоположной задачи (перечисление всех определенных переменных). Это не то, что я ищу.
Итак, кто-нибудь знает о доступности такой утилиты?
Такого инструмента нет, и я уверен, что вам понадобится полный Ansible-Yaml и Jinja-Parser. Может быть, ansible-lint - хорошая отправная точка.
Потому что в сценариях и ролях могут использоваться переменные, а также в зависимостях этих ролей. Также у ролей будут шаблоны, которые могут использовать вары. И тогда вряд ли возможно иметь "сконструированные" var-ключи в словарях или списках, которые можно увидеть только при полном запуске скрипта. Существует метод dryrun для playbook - возможно, можно начать с него, изучив все ошибки, - но если он содержит условие if else, интерпретируется только один блок.