Определение
Ansible при помощи различных плагинов inventory использует переданные ему файлы/скрипты/данные и переводит все в JSON формат
В общем виде всего в Ansible есть 3 типа inventory:
Статический— просто файлКаталог— директория с файламиДинамический— исполняемый файл
При этом при использовании 2 типа (Каталог) можно использовать 1 (Статический) и 3 (Динамический) одновременно, а результирующий инвентарь будет являться совокупностью всех инвентарей из этого каталога
Поддерживаемые форматы для статического типа ограничиваются плагинами inventory, которые можно написать самому, но в ansible.builtin (основа Ansible) можно использовать:
yaml-ansible.builtin.yamljson-ansible.builtin.yaml(напомню, что правильно написанный JSON является корректным YAML)ini-ansible.builtin.initoml-ansible.builtin.toml
Чаще всего используются yaml и ini, но согласно best-practice нужно использовать формат yaml
Все типы плагинов для inventory можно найти тут (https://docs.ansible.com/ansible/latest/collections/index_inventory.html)
Практика
Для примера продемонстрирую одинаковый статический inventory в разных форматах:
inventory.ini:
[awx_root]
awx ansible_user=admin ansible_host=192.0.2.10
inventory.toml:
[all.vars]
ansible_user = "admin"
[awx_root.hosts]
awx = { ansible_host = "192.0.2.10" }
inventory.yml:
---
all:
vars:
ansible_user: admin
hosts:
awx:
ansible_host: 192.0.2.10
children:
awx_root:
hosts:
awx:
inventory.json:
{
"all": {
"vars": {
"ansible_user": "admin"
},
"hosts": {
"awx": {
"ansible_host": "192.0.2.10"
}
},
"children": {
"awx_root": {
"hosts": {
"awx": null
}
}
}
}
}
Используя команду ansible-inventory -i <имя_файла> --list можно проверить все 4 файла и увидеть, что получившийся JSON ответ будет одинаковым (можно добавить флаг --yaml для удобного вывода в формате yaml)

Более подробное описание с примерами для динамических инвентарей будет в отдельной статье