- name: check last partition
set_fact:
part: "{{ (ansible_devices[item]['partitions'] | dict2items | last)['value'].links.ids[-1][-1] }}"
when:
- ansible_devices[item]['partitions'] | dict2items | length>0
где item передается значение диска (к примеру sda
Наткнулся на проблему что что ids бывает пустым
нашел выход как это обрабатывать:
- name: check last partition
set_fact:
part: "{{ (ansible_devices[item]['partitions'] | dict2items | last)['key'] | regex_replace('[^0-9]+', '') }}"
when:
- ansible_devices[item]['partitions'] | dict2items | length>0
но хотелось бы что бы была проверка если ids пустое то один вариант если не пустое то другой
Делал
when:
- ansible_devices[item]['partitions'] | dict2items | last['value'].links.ids is defined
- ansible_devices[item]['partitions'] | dict2items | length > 0
Но выдает ошибку типа там не строковое значение, как это правильно обработать?
last['value'] - нет такого фильтра
а как тогда в моем случаи проверять что ids пустое [] или не пустое [sefdgf _sdfsdsdf1]
или is iterable
По умолчанию в ансибле пустой список эквивалентен false
Обсуждают сегодня