Назад | Перейти на главную страницу

ansible: сумма по массиву фактов

Я хочу получить размеры нескольких дисков и просуммировать их, чтобы проверить, превышает ли их сумма размеров минимально необходимый.

Мы собираемся использовать LVM для создания точек монтирования, нам нужно иметь возможность использовать один диск или несколько дисков.

Я могу получить отдельные размеры дисков, используя доступные факты (ansible_devices.items.sectors | int * ansible_devices.items.sectorsize | int), используя with_items

Я хочу все это подвести. Как я это сделал

Есть map и sum фильтры в Джиндже:

- 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) }}"