Ansible-检查项目是否在列表中

我想比较两个列表-一个带有所有可用选项,第二个带有要选择的特定选项。 例如,我有两个列表:

FullList:
  - name: "Test1"
    value1: "blabla123"
    value2: "someothervalue"
  - name: "Test2"
    value1: "blsdfsdfasfabla"
    value2: "someothervalue"
  - name: "Test3"
    value1: "sdjfbhsadbfv"
    value2: "someothervalue"
  - name: "Test4"
    value1: "sdjkfnsjkf"
    value2: "sdjkfnsjkf"

它包含所有可用元素及其属性。

我还有第二个列表,带有特定的键,可以从整个列表中选择项目。

List1:
  - "Test2"
  - "Test3"

我想从FullList中获得List1中的元素

即我希望

Result:
  - name: "Test2"
    value1: "blsdfsdfasfabla"
    value2: "someothervalue"
  - name: "Test3"
    value1: "sdjfbhsadbfv"
    value2: "someothervalue"

任何帮助将不胜感激!

yaozhiying 回答:Ansible-检查项目是否在列表中

Filter selectattr test in 中的工作。例如

- set_fact:
    Result: "{{ FullList|selectattr('name','in',List1)|list }}"
,

请尝试如下打印

  tasks:
  - debug:
     msg : "{{ item }}"
    when: item.name in List1
    loop: "{{FullList}}"

要保存为变量,请按以下方式使用

  - name: test
    set_fact:
     test: "{{ item }}"
    when: item.name in List1
    loop: "{{FullList}}"
本文链接:https://www.f2er.com/3160823.html

大家都在问