如果它与字典值列表中的元素匹配,则 ansible 分配字典键的值

时间:2021-04-20 20:48:57

标签: ansible

我尝试通过“set_fact”将值分配给值列表中的元素对应的键 例如:

 variable_ansible:
       key1: value1
       key2: 
        - value2-1
        - value2-2
        - value2-3
       key3:
        - value3-1
        - value3-2

如果我给作为输入: value2-3 ,这给我 key2 作为输出 任何想法请

1 个答案:

答案 0 :(得分:0)

使字典保持一致并将'value1'也放入列表中,例如

    variable_ansible:
       key1:
         - value1
       key2: 
         - value2-1
         - value2-2
         - value2-3
       key3:
         - value3-1
         - value3-2

使用json_query,例如

    - set_fact:
        _keys: "{{ variable_ansible|dict2items|json_query(query) }}"
      vars:
        input: value2-3
        query: "[?contains(value, '{{ input }}')].key"

给予

  _keys:
  - key2

json_query 的结果总是一个列表,因为可能有更多的键满足条件。