Можно ли изменить имя файла инвентаря (inventory.ini) в Ansible?

«Можно ли изменить имя файла инвентаря (inventory.ini) в Ansible?» — вопрос из категории Ansible, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, стандартное имя 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.