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