Ответ
Команда ansible-inventory — это утилита командной строки для отображения и анализа инвентаря Ansible. Я часто использую её для отладки, проверки группировки хостов и переменных перед запуском плейбуков.
Основные варианты использования и примеры:
-
Просмотр всего инвентаря в структурированном виде (JSON):
ansible-inventory -i production.ini --listЭто помогает увидеть итоговую структуру после применения всех
group_vars,host_varsи динамических источников. -
Визуализация иерархии групп в виде графа:
ansible-inventory -i inventory/ --graphВывод:
@all: |--@ungrouped: |--@webservers: | |--web01 | |--web02 |--@dbservers: | |--db01 -
Проверка переменных для конкретного хоста:
ansible-inventory -i hosts.yml --host web01.example.comПоказывает все переменные (включая унаследованные от групп), которые будут доступны для этого хоста при выполнении плейбука.
-
Экспорт в YAML или использование с jq для фильтрации:
ansible-inventory --list --output inventory.yaml ansible-inventory --list | jq '.all.children'
Ключевая польза для DevOps: Эта команда незаменима для валидации сложных динамических инвентарей (генерируемых скриптами на Python или из облачных источников, like AWS EC2), позволяя убедиться, что хосты правильно сгруппированы и им назначены корректные переменные.