Инвентаризация

Инвентаризация#

Терминология:

  • Инвентарь – совокупность управляемых узлов (managed nodes).

  • Описание инвентаря (inventory) или инвентарный список – файлы или другие источники данных, определяющие перечень и параметры узлов, управляемых через сценарии автоматизации (playbooks) или отдельные задачи.

  • Инвентаризация – процесс создания описания инвентаря.

Описание инвентаря#

Описание инвентаря может быть создано следующими способами:

  • статическая инвентаризация – создание и хранение описания инвентаря в файлах;

  • динамическая инвентаризация – создание описания инвентаря в процессе выполнения задания.

Независимо от способа, перед выполнением требуемых сценариев автоматизации Ansible проводит окончательную инвентаризацию – обрабатывает исходное представление инвентаря для создания описания, используемого далее в этих сценариях. При запуске утилиты ansible-playbook можно задавать несколько источников, используя как статическую, так и динамическую инвентаризацию:

ansible-playbook -i <inventory-1> -i <inventory-2> ... <playbook>.yml

Ключевые правила:

  • Каждый источник представляется значением аргумента -i.

  • При возникновении конфликта между источниками последний из этих источников имеет более высокий приоритет.

Расширения из Ansible Core#

Для инвентаризации Ansible использует (загружает) следующие расширения из коллекции ansible.builtin:

  • ansible.builtin.host_list разбирает строку с перечнем узлов, включая диапазоны названий.

  • ansible.builtin.ini использует файлы формата INI как источники описания инвентаря.

  • ansible.builtin.yaml использует файлы формата YAML как источники описания инвентаря.

  • ansible.builtin.toml использует файлы формата TOML как источники описания инвентаря.

  • ansible.builtin.script выполняет внешний скрипт, возвращающий описание инвентаря в формате JSON.

  • ansible.builtin.constructed формирует группы и переменные на основе шаблонов Jinja2.

  • ansible.builtin.generator создает группы и узлы по шаблонам.

  • ansible.builtin.auto автоматически определяет нужное расширение Ansible по ключу plugin в файлах YAML и загружает его.