ansible:对事实数组求和

ansible:对事实数组求和

我想要获取多个磁盘的磁盘大小并将它们相加,以检查它们的大小总和是否大于最小要求。

我们将使用 LVM 创建挂载点,我们需要能够使用单个磁盘或多个磁盘。

我能够使用 ansible 事实( ansible_devices.items.sectors|int * ansible_devices.items.sectorsize|int)使用 with_items 获取单个磁盘大小

我想把所有这些加起来。我该怎么做

答案1

mapsum 过滤器在金贾:

- set_fact:
    disk_size: "{{ (item.value.sectors | int) * (item.value.sectorsize | int) }}"
  with_dict: "{{ ansible_devices }}"
  register: disk_sizes

- debug: msg="{{ disk_sizes.results | map(attribute='ansible_facts.disk_size') | map('int') | sum(start=0) }}"

相关内容