generator – Использование Jinja2 для построения хостов и групп из шаблонов
Новое в версии 2.6.
Обзор
- Использует 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
plugin: generator
strict: False
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
Статус
- Данный инвентарь не гарантирует обратной совместимости. [превью]
- Этот инвентарь поддерживается сообществом Ansible. [сообщество]
Авторы
- НЕИЗВЕСТНО
Подсказка
Если вы заметите какие-либо проблемы в данной документации, вы можете отредактировать этот документ, чтобы улучшить его.
Подсказка
Элементы конфигурации для каждого типа записи имеют порядок приоритетов от низкого к высокому. Например, переменная, которая находится ниже в списке, переопределит переменную, которая расположена выше.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/plugins/inventory/generator.html