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

Арифметическая операция с элементом с анзиблем

Я хотел бы добавить каждый элемент в цикл.

Например :

Переменные:

FS:
    - nom_FS: /apps/oracle/{{ SID | lower }}/syst01
      nom_LV: "lv{{ TRIGRAMME | lower }}syst01"
      size_FS: 20
      owner_FS: oracle
      group_FS: dba
      vg_name: vgdata

    - nom_FS: /apps/oracle/{{ SID | lower }}/syst02
      nom_LV: "lv{{ TRIGRAMME | lower }}syst02"
      size_FS: 20
      owner_FS: oracle
      group_FS: dba
      vg_name: vgdata

Пособие:

- name: size FS
  shell: /bin/echo "({{item.size_FS.0}}+{{item.item.size_FS.1}})" | bc
  register: check_size_disk
  with_items: "{{ FS }}"

Я пробовал другие вещи безуспешно ...

Не могли бы вы мне помочь, пожалуйста ?

Простое добавление должно работать

- debug:
    msg: "{{ size_FS1 + size_FS2 }}"

Чтобы убедиться, что строки будут преобразованы, используйте int фильтр.

- debug:
    msg: "{{ size_FS1|int + size_FS2|int }}"

Чтобы добавить каждый элемент в цикл, тоже работает простое добавление

- set_fact:
    sum: "{{ sum|default(0)|int + item|int }}"
  loop: "{{ FS|json_query('[].size_FS') }}"

Самый простой вариант - использовать сумма фильтр.

- set_fact:
   sum: "{{ FS|map(attribute='size_FS')|list|sum }}"