Jak napisać warunek kiedy istnieje sekcja w dostępnym poradniku


Próbuję napisać do zadania, gdy istnieje sekcja/var. Użyłem zmiennej assert
- name: Apply patch if/var exist and > 300MB
yum:
name: '*'
state: latest
loop: "{{ ansible_mounts }}"
when: item.mount == "/var" and item.size_available > 300000000

Powinien zawieść lub pominąć, jeśli/var nie istnieje. Co się nie dzieje. Powiedz mi, jak pominąć, jeśli/var nie istnieje
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

oto co zrobiłem, żeby to działało:
---
- name: answer serverfault
hosts: all
become: yes tasks:
- name: Apply patch if/var exist and > 300MB
debug:
msg:
#- " Data type of 'ansible_facts['mounts'] is {{ ansible_facts['mounts'] | type_debug }} "
- item mount is {{ item.mount }}
- item size_available is {{ item.size_available }}
when: item.mount == "/data" and item.size_available > 300000000
loop: "{{ ansible_facts['mounts'] | flatten(levels=1) }}"

zakomentowana sekcja faktycznie pokazuje typ danych, z którymi masz do czynienia. W tym przypadku jest to lista.
Aby spłaszczyć listę, użyłem
         "{{ ansible_facts['mounts'] | flatten(levels=1) }}"
ponieważ lista początkowo wygląda mniej więcej tak:
       "ansible_mounts": [
{
"block_available": 109019876,
"block_size": 4096,
"block_total": 961159932,
"block_used": 852140056,
"device": "/dev/sde1",
"fstype": "ext4",
"inode_available": 243543185,
"inode_total": 164195328,
"inode_used": 513143,
"mount": "/data",
"options": "rw,relatime",
"size_available": 444545412096,
"size_total": 3236911081442,
"uuid": "a35a0282-6eac-132d-abdf-fbea3a835522"
},

Przetestowałem podręcznik na moim
/data*
punkty montowania, ponieważ nie mam serwera z
/var
teraz dostępny - ale działa zgodnie z oczekiwaniami.
kilka linków:

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się