Инвентаризация#
Терминология:
Инвентарь – совокупность управляемых узлов (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 и загружает его.