如何计算与Ansible中的条件匹配的哈希中某个对象的出现次数?

如何计算与Ansible中的条件匹配的哈希中某个对象的出现次数?,ansible,jinja2,Ansible,Jinja2,在ansible变量中给定此列表: --- 主持人: -地址:host1.local 集群: 姓名:红色 -地址:host2.local 集群: 姓名:红色 -地址:host3.local 集群: 姓名:格林 -地址:host4.local 集群: 姓名:蓝色 现在我想以某种方式计算每个集群中的主机数量。因此,我想以: hosts_per_cluster: RED: 2 BLUE: 1 GREEN: 1 这件事怎么办 我的第一次尝试是这样的: - name: Get num

在ansible变量中给定此列表:

---
主持人:
-地址:host1.local
集群:
姓名:红色
-地址:host2.local
集群:
姓名:红色
-地址:host3.local
集群:
姓名:格林
-地址:host4.local
集群:
姓名:蓝色
现在我想以某种方式计算每个集群中的主机数量。因此,我想以:

hosts_per_cluster:
   RED: 2
   BLUE: 1
   GREEN: 1
这件事怎么办

我的第一次尝试是这样的:

- name: Get number of hosts per cluster
      set_fact: 
        hosts_per_cluster[item.cluster.name]={{ hosts_per_cluster[item.cluster.name] | default(0) | int +1 }}
      loop: "{{ hosts }}"

但是,这不起作用…

下面的任务创建字典

-设置事实:
hpc:{hpc |默认({})|组合({item.0:item.1 | length}}})
循环:“{{u hosts}groupby('cluster.name')}”
给予

hpc:
蓝色:1
绿色:1
红色:2

您是否已经尝试过过滤器,但发现它缺少?请勿在变量中使用保留名称。任务应显示
[警告]:找到使用保留名称的变量:hosts