【问题标题】:Ansible make list from two list (attribute to first list from two)Ansible 从两个列表中生成列表(归因于两个列表中的第一个列表)
【发布时间】:2020-12-25 16:18:06
【问题描述】:

列表的长度可以不同。它们之间没有外键。我只想从两个列表中创建一个大列表(多记录?)

变量:

列表1:

- item: "alpha"
  key1: "value1"
  key2: "value2"
- item: "beta"
  key1: "value1"
  key2: "value2"

列表2:

- add_key_to_each_1: "to_each_value_1"
- add_key_to_each_2: "to_each_value_2"

我想通过一些任务(set_fact)关注list3:

- item: "alpha"
  key1: "value1"
  key2: "value2"
  add_key_to_each_1: "to_each_value_1"

- item: "beta"
  key1: "value1"
  key2: "value2"
  add_key_to_each_1: "to_each_value_1"

- item: "alpha"
  key1: "value1"
  key2: "value2"
  add_key_to_each_2: "to_each_value_2"

- item: "beta"
  key1: "value1"
  key2: "value2"
  add_key_to_each_2: "to_each_value_2"

【问题讨论】:

    标签: list ansible


    【解决方案1】:

    下面的任务完成了这项工作

        - set_fact:
            list3: "{{ list3|default([]) + [item.0|combine(item.1)] }}"
          with_cartesian:
            - "{{ list2 }}"
            - "{{ list1 }}"
        - debug:
            var: list3
    

    给予

      list3:
      - add_key_to_each_1: to_each_value_1
        item: alpha
        key1: value1
        key2: value2
      - add_key_to_each_1: to_each_value_1
        item: beta
        key1: value1
        key2: value2
      - add_key_to_each_2: to_each_value_2
        item: alpha
        key1: value1
        key2: value2
      - add_key_to_each_2: to_each_value_2
        item: beta
        key1: value1
        key2: value2
    

    【讨论】:

    • "with_cartesian"。太感谢了。将来对我很有用。
    猜你喜欢
    • 1970-01-01
    • 2019-10-04
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 2023-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多