gpt4 book ai didi

Ansible:如何从列表中获取重复的项目?

转载 作者:行者123 更新时间:2023-12-03 08:47:31 27 4
gpt4 key购买 nike

如何在ansible中获取重复的项目

输入:

- vars: 
list1:
- a
- b
- c
- d
- d
- e
- e
- e

预期输出:

list1: 
- d
- e

最佳答案

通过大数据列表在 ansible 中循环可能会非常慢。创建custom_filter要快得多。

在项目根目录中创建文件夹filter_plugins。在文件夹内创建一个python文件(例如custom_filter.py)然后使用以下代码:

#!/usr/bin/python

class FilterModule(object):
def filters(self):
return {'duplicates': self.duplicates}

def duplicates(self, items):
sums = {}
result = []

for item in items:
if item not in sums:
sums[item] = 1
else:
if sums[item] == 1:
result.append(item)
sums[item] += 1
return result

然后在您的剧本中调用自定义过滤器:

    - name: "debug"
debug:
msg: "{{ [1, 2, 2, 4, 5, 1] | duplicates }}"
ok: [localhost] => {
"msg": [
2,
1
]
}

处理数据时,通常最好使用自定义过滤器。

关于Ansible:如何从列表中获取重复的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60828923/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com