Ответ
Да, стандартное имя inventory.ini не является жёстким требованием. Ansible позволяет работать с инвентарём под любым именем и расположением.
Основные способы указания кастомного инвентаря:
1. Через флаг -i (inventory) в командной строке:
ansible-playbook site.yml -i /path/to/my_inventory_file
2. Через переменную окружения ANSIBLE_INVENTORY:
export ANSIBLE_INVENTORY=/path/to/my_inventory_file
ansible-playbook site.yml
3. Через настройку в файле ansible.cfg:
[defaults]
inventory = /path/to/my_inventory_file
Важные особенности:
- Можно указывать не только файлы (
.ini,.yaml,.yml), но и директории. Ansible будет комбинировать все валидные инвентарные файлы внутри. - Поддерживаются исполняемые файлы динамического инвентаря (скрипты на Python, Bash и др.), которые должны возвращать JSON в определённом формате.
- Можно указывать несколько источников инвентаря через запятую:
-i inventory1.ini,inventory2.yml,/path/to/dynamic_script.py.