【发布时间】:2026-02-07 19:15:01
【问题描述】:
在 Ansible 中,如果我有一个具有以下混合结构的列表变量:
input_items:
- mainkey: 'main.value.1'
subkey: 'subvalue_1.1'
- mainkey: 'main.value.2'
group:
- subkey: 'subvalue_2.1'
- subkey: 'subvalue_2.2'
有没有办法将它转换成这样的扁平结构:
transformed:
- mainkey: 'main.value.1'
subkey: 'subvalue_1.1'
- mainkey: 'main.value.2'
subkey: 'subvalue_2.1'
- mainkey: 'main.value.2'
subkey: 'subvalue_2.2'
想法是允许更紧凑的结构来定义列表,然后将其转换为易于使用with_items 输入模块的扁平结构。
我已经用尽了我可以使用的所有形式的循环、包含、set_fact 和 jinja 过滤器,但我确信一定有办法。
【问题讨论】:
-
这极不可能在 Ansible 中解决。您应该考虑创建一个自定义过滤器插件。 docs.ansible.com/ansible/developing_plugins.html#filter-plugins
标签: ansible ansible-playbook ansible-2.x