Короткий ответ
Inventory — это файл (INI или YAML), в котором перечислены управляемые хосты и их группировка, используемая для нацеливания playbook на нужный набор серверов; в простом варианте это статический список IP/имён, сгруппированных по заголовкам секций.
Как это работает подробнее
Ansible читает inventory и строит внутреннее представление хостов и групп с переменными (host_vars/group_vars); playbook указывает целевую группу в поле hosts:, и Ansible подключается к каждому хосту из неё по SSH (или WinRM) для выполнения задач.
Пример кода
example.txt
[web]
web1.example.com
web2.example.com
[db]
db1.example.com ansible_host=10.0.0.5
[prod:children]
web
dbЧто использовать на практике
- Практика. статический inventory подходит для небольших и стабильных окружений; группы можно вкладывать друг в друга (
[prod:children]), а переменные, общие для группы, выносить вgroup_vars/<имя_группы>.yml, чтобы не повторять их в playbook.
Подводные камни
- Ошибка. хранить пароли или ключи прямо в inventory в открытом виде; забывать, что имя хоста в inventory должно быть разрешаемым (DNS/hosts-файл), или явно не указывать
ansible_hostс IP-адресом, когда имя не резолвится.