Le 26/11/20 à 21h17, Rémi CAZENAVE - Le Filament <r...@le-filament.com> a écrit : > Bonsoir, > > C'est parce qu'il essaie de résoudre la variable dans la condition, et > que le first ne fonctionne pas sur une liste vide.
En fait je m'attendais à ce que ce first sur une liste vide rende la variable undefined. Si je teste avec debug: msg: "Type du []|first : {{ ansible_all_ipv4_addresses | ipaddr('public') | first | type_debug }} " ça affiche AnsibleUndefined mais l'affecter à une variable et tester ensuite avec "is defined" marche pas, je sais pas trop pourquoi… (et pas vu comment tester le type). > Essaie d'ajouter | default([""]) avant le first variable, s'il n'y a pas > d'adresse IP publique il devrait prendre cette valeur par défaut et > t'afficher un string vide. Il faudrait que tu modifies aussi ta condition > pour être si différent de "" du coup ou de longueur > 1 Oui, c'est la solution de contournement (ou comme le précise Faustin mettre ça dans un defaults/main.yml) => toutes les variables sont toujours définies mais parfois vides, et on teste juste si c'est truthy avec du when: foo|bool -- Daniel Il est très curieux de constater que dans l'armée, les statistiques le prouvent, la mortalité augmente bizarrement en temps de guerre. Alphonse Allais _______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/