ansible.builtin.subelements 过滤器 – 返回列表及其元素的笛卡尔积

注意

此过滤器插件是 ansible-core 的一部分,并包含在所有 Ansible 安装中。在大多数情况下,您可以使用简短的插件名称 subelements。但是,我们建议您使用完全限定集合名称 (FQCN)ansible.builtin.subelements,以便轻松链接到插件文档,并避免与其他可能具有相同过滤器插件名称的集合冲突。

Ansible 2.7 中的新增功能

概要

  • 这将生成一个对象及其子元素值的笛卡尔积,类似于子元素查找。这使您可以指定在模板中使用的单独子元素 _input

输入

这描述了过滤器的输入,即 | ansible.builtin.subelements 之前的值。

参数

注释

输入

list / elements=any / 必需

原始列表。

位置参数

这描述了过滤器的位置参数。这些是以下示例中的值 positional1positional2 等:input | ansible.builtin.subelements(positional1, positional2, ...)

参数

注释

_subelement

string / 必需

要从原始列表项中提取的属性的标签。

skip_missing

boolean

如果 True,则忽略缺失的子元素,否则缺失的子元素会生成错误。

选项

  • false ← (默认)

  • true

示例

# data
users:
  - groups: [1,2,3]
    name: lola
  - name: fernando
    groups: [2,3,4]

# user_w_groups =>[ { "groups": [ 1, 2, 3 ], "name": "lola" }, 1 ], [ { "groups": [ 1, 2, 3 ], "name": "lola" }, 2 ], [ { "groups": [ 1, 2, 3 ], "name": "lola" }, 3 ], [ { "groups": [ 2, 3, 4 ], "name": "fernando" }, 2 ], [ { "groups": [ 2, 3, 4 ], "name": "fernando" }, 3 ], [ { "groups": [ 2, 3, 4 ], "name": "fernando" }, 4 ] ]
users_w_groups: {{ users | subelements('groups', skip_missing=True) }}

返回值

描述

返回值

list / elements=any

由原始列表和子元素列表的笛卡尔积组成的列表。

已返回: 成功

提示

每个条目类型的配置条目都具有从低到高的优先级顺序。例如,列表中较低的变量将覆盖列表中较高的变量。