【发布时间】:2020-03-09 04:58:51
【问题描述】:
我在 ansible 中有 2 种类型的输入数据。 首先是字符串列表:
- '1.1.1.1'
- '2.2.2.2'
其次是字典列表。
- {'name': 'obj1', 'addr': '1.1.1.1'}
- {'name': 'objx', 'addr': 'x.x.x.x'}
我事先不知道第一个列表的项目是否在第二个列表的地址字段中。因此我必须执行评估,为此我必须使用嵌套循环。我需要遍历第一个列表并遍历第二个列表,然后执行条件检查第一个列表的项目是否等于第二个列表的 item.addr。但是我不知道如何在 ansible 条件下区分第一个列表的项目和第二个列表的项目。
在 python 中,我可以通过使用以下表达式来实现类似的效果:
for add in my_list:
for obj in my_list2:
if add == obj['addr']:
new_list.append([obj])
在ansible中应该是这样的:
- set_fact:
new_list: "{{ new_list }} + [ {'name': '{{ item_second_list.name }}', 'address': '{{ item_second_list.addr }}'} ]"
when: item_first_list == item_second_list.addr
with_list: first_list
with_list: second_list
【问题讨论】:
标签: python loops ansible conditional-statements