ansible.builtin.generator inventory – 使用 Jinja2 从模式构建主机和组
注意
此清单插件是 ansible-core
的一部分,包含在所有 Ansible 安装中。在大多数情况下,您可以使用简短的插件名称 generator
。但是,我们建议您使用 完全限定的集合名称 (FQCN) ansible.builtin.generator
,以便轻松链接到插件文档并避免与可能具有相同清单插件名称的其他集合发生冲突。
概要
使用具有有效 YAML 或
.config
扩展名的 YAML 配置文件来定义变量表达式和组条件创建一个描述每个主机的模板模式,然后使用独立的配置层
每层的所有元素都组合在一起,为每种层组合创建一个主机
父组可以使用与主机和使用相同模板变量的其他组相同的引用来定义
参数
参数 |
注释 |
---|---|
父级还可以包含 |
|
一个层字典,其中键是层名称,用作 |
|
确保这是“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: ansible.builtin.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
提示
每个条目类型的配置条目具有从低到高的优先级顺序。例如,列表中较低的变量将覆盖列表中较高的变量。