Ansible-如何检查列表中的所有元素是否相同?

时间:2019-01-28 18:51:59

标签: ansible jinja2

我们有清单,例如:
['A', 'A']
如何检查列表是否仅包含元素A? (是的,它完全是字符串)。

例如,对于 ['A']['A','A','A','A']应该返回True,但是对于
[]['A','A', 'B']应该返回False。

是否存在任何优雅的表达方式?

1 个答案:

答案 0 :(得分:1)

这应该做到:

- set_fact:
    sample:
      - A
      - A
- set_fact:
    has_unique_val: "{{ sample | unique | length == 1 }}"
- debug:
    var: has_unique_val
  • sample | unique | length,这会将列表缩小为唯一值,然后计算返回的值数。如果只有一个值,将返回1,否则返回0或> 1
  • == 1如果计数为1,则返回true;否则返回false