group_by#
Модуль ansible.builtin.group_by использует факты для создания временных групп узлов в описании инвентаря.
Созданные группы можно использовать позже в этом же сценарии, например, чтобы ограничить список узлов, на которых выполняются задания.
Параметры#
Модуль принимает следующие параметры:
- key#
Обязательный параметр.
Название создаваемой группы узлов, которое может содержать шаблоны Jinja2, например,
machine_{{ ansible_machine }}.Примечание
Модуль автоматически заменяет пробелы в названиях групп на дефисы.
- parents#
Список родительских групп.
Значение по умолчанию:
["all"].
Атрибуты#
Атрибуты определяют функции Ansible, которые может использовать модуль.
Атрибут |
Описание |
|---|---|
|
Модуль имеет соответствующее расширение действий (action plugin). Это расширение выполняет работу на управляющем узле. |
|
Модуль не поддерживает асинхронное выполнение. |
|
Модуль не поддерживает повышение привилегий. |
|
Модуль не поддерживает глобальное выполнение задачи. |
|
Модуль поддерживает директивы |
|
Модуль частично поддерживает режим проверки ( |
|
Модуль не использует информацию о настройках подключения к целевому узлу при выполнении заданий на нем. |
|
Только часть функциональности модуля может быть изменена с помощью расширений. |
|
Модуль не поддерживает |
|
Модуль не поддерживает режим сравнения. |
|
Модуль игнорирует директиву |
|
Модуль поддерживает все платформы, с которыми может работать Ansible. |
|
Модуль поддерживает директиву |
|
Модуль не поддерживает механизм повторных попыток. |
Примеры#
Для изучения возможностей модуля ознакомьтесь с приведенными ниже примерами.
Создание группы без использования фактов#
Следующий пример демонстрирует создание временной группы example, в которую будут добавлены все активные узлы:
---
# ...
tasks:
- name: Add all active hosts to a static group
ansible.builtin.group_by:
key: example
Пример результата выполнения задачи:
Создание групп с использованием фактов#
Следующий пример демонстрирует создание временных групп на основе дистрибутива и архитектуры узлов:
---
# ...
tasks:
- name: Create nested groups
ansible.builtin.group_by:
key: "{{ ansible_distribution }}-{{ ansible_distribution_release }}"
parents:
- "{{ ansible_distribution }}"
Пример результата выполнения задачи: