ansible.builtin.generator – Uses Jinja2 to construct hosts and groups from patterns
ansible.builtin.generator – Uses Jinja2 to construct hosts and groups from patterns
Note
This module is part of ansible-base
and included in all Ansible installations. In most cases, you can use the short module name generator even without specifying the collections:
keyword. Despite that, we recommend you use the FQCN for easy linking to the module documentation and to avoid conflicting with other collections that may have the same module name.
New in version 2.6: of ansible.builtin
Synopsis
- Uses a YAML configuration file with a valid YAML or
.config
extension to define var expressions and group conditionals - Create a template pattern that describes each host, and then use independent configuration layers
- Every element of every layer is combined to create a host for every layer combination
- Parent groups can be defined with reference to hosts and other groups using the same template variables
Parameters
Parameter | Choices/Defaults | Configuration | Comments |
---|---|---|---|
hosts string |
The The Parents can also contain | ||
layers string |
A dictionary of layers, with the key being the layer name, used as a variable name in the | ||
plugin string / required |
|
token that ensures this is a source file for the 'generator' plugin. |
Examples
# 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