擅长:python、mysql、java
<p>非常感谢你的帮助马修!在</p>
<p>我觉得有点太难看了,有事实,等等,所以我决定只做一个过滤器插件迅速。。。或者更重要的是,对<a href="https://github.com/ansible/ansible/blob/devel/lib/ansible/plugins/filter/mathstuff.py" rel="nofollow noreferrer">mathstuff.py</a>文件进行添加。在</p>
<p>添加:</p>
<pre><code>def duplicate(a):
if isinstance(a, collections.Hashable):
c = set(a)
else:
s = {}
c = []
for x in a:
if x not in s:
s[x] = 1
else:
if s[x] == 1:
c.append(x)
s[x] += 1
return c
</code></pre>
<p>在文件的主体部分,并添加:</p>
^{pr2}$
<p>进入:</p>
<pre><code>class FilterModule(object):
''' Ansible math jinja2 filters '''
def filters(self):
filters = {
</code></pre>
<p>所以<code>Jinja2</code>知道过滤器。在</p>
<p>当我有时间的时候,我会发出一个请求,但是如果有人同时发现这个请求,或者如果您不想/不能更新Ansible,那么下面的方法非常有用:</p>
<pre><code>- debug:
msg: '{{ my_dict | dict2items | map(attribute="value.redis.port") | list | duplicate }}'
</code></pre>
<p>退货:</p>
<pre><code>['1234']
</code></pre>
<p>我用大得多的样本做了一些测试,结果如愿。在</p>
<p><strong>享受吧!</strong></p>