Vérifier si les tableaux sont définis et non vides dans ansible
J'ai le code suivant
- set_fact:
MY_HOSTNAME: "SOME VALUE"
MY_SERVER: "00.00.00.00"
- name: Get MY server
set_fact:
MY_SERVER: "{{ groups[MY_HOSTNAME][0] }}"
when: groups[MY_HOSTNAME] is defined
Dans le code ci-dessus, groups[MY_HOSTNAME]
est un tableau. Quel est le meilleur moyen de vérifier que groups[MY_HOSTNAME]
est défini et également que c'est not empty
Si c'est l'un ou l'autre, je veux la valeur 00.00.00.00
à attribuer à MY_SERVER
Je ne sais pas si c'est spécifique à la version, mais j'utilise actuellement ansible-2.3.2 sur RHEL6 et je devais mettre des guillemets autour du nom du groupe pour que cela fonctionne pour moi:
when: groups["GROUP_NAME"] is defined and (groups["GROUP_NAME"]|length>0)
Edit: Je ne pourrais pas ajouter ceci en tant que commentaire à la réponse de Techraf car je n’ai pas assez de réputation.
list | length
filtre renvoie le nombre d'éléments. Si c'est zéro, la liste est vide.
Pour une valeur conditionnelle, utilisez if
ou ternary
filter ( exemple dans cette réponse ).
Pour un composite conditionnel (groups[MY_HOSTNAME]| default([])) | length
.