ansible.builtin.generator – Использует Jinja2 для построения хостов и групп из шаблонов
Примечание
Этот модуль входит в состав ansible-base и включён во все установки Ansible. В большинстве случаев вы можете использовать короткое имя модуля generator даже без указания ключевого слова collections:. Несмотря на это, мы рекомендуем использовать FQCN для лёгкой ссылки на документацию модуля и для избежания конфликтов с другими коллекциями, которые могут иметь то же имя модуля.
Введено в версии 2.6: of ansible.builtin
Описание
- Использует файл конфигурации YAML с расширением YAML или
.configдля определения выражений var и условных выражений групп - Создаёт шаблон, описывающий каждый хост, и затем использует независимые слои конфигурации
- Каждый элемент каждого слоя объединяется для создания хоста для каждой комбинации слоёв
- Родительские группы могут быть определены со ссылкой на хосты и другие группы, используя те же переменные шаблона
Параметры
| Параметр | Варианты/Значения по умолчанию | Конфигурация | Комментарии |
|---|---|---|---|
| hosts строка | Ключ name — это шаблон, используемый для генерации имён хостов на основе параметра layers. Каждая переменная в имени расширяется для создания декартова произведения всех возможных комбинаций слоёв.Ключ parents — список родительских групп, к которым принадлежит хост. Каждый элемент списка parent содержит ключ name, снова расширенный из шаблона, и необязательный ключ parents, который перечисляет его родителей.Родители также могут содержать vars, которое представляет собой словарь переменных, которые затем всегда устанавливаются для этой переменной. Это может обеспечить лёгкий доступ к имени группы. Например, установите переменную application, которая устанавливается в значение имени слоя application. | ||
| layers строка | Словарь слоёв, где ключ — имя слоя, используемый как имя переменной в ключах host name и parents. Каждое значение слоя — список возможных значений для этого слоя. | ||
| plugin строка / обязательно |
| Токен, гарантирующий, что это исходный файл для плагина 'generator'. |
Примеры
# inventory.config file in YAML format
# remember to enable this inventory plugin in the ansible.cfg before using
# View the output using `ansible-inventory -i inventory.config --list`
plugin: generator
hosts:
name: "{{ operation }}_{{ application }}_{{ environment }}_runner"
parents:
- name: "{{ operation }}_{{ application }}_{{ environment }}"
parents:
- name: "{{ operation }}_{{ application }}"
parents:
- name: "{{ operation }}"
- name: "{{ application }}"
- name: "{{ application }}_{{ environment }}"
parents:
- name: "{{ application }}"
vars:
application: "{{ application }}"
- name: "{{ environment }}"
vars:
environment: "{{ environment }}"
- name: runner
layers:
operation:
- build
- launch
environment:
- dev
- test
- prod
application:
- web
- api
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/ansible/builtin/generator_inventory.html