Essayez de vérifier si équivaut à une chaîne vide ou non ?
- hosts: myhosts
tasks:
- name: echo hello
command: echo hello
register: result
- command: somecommand {{ result.stdout }}
when: result.stdout != ""
- command: someothercommand
when: result.stdout == ""
Depuis 2018, la méthode recommandée pour tester si la sortie est vide est simplement :
when: result.stdout | length > 0
C'est la manière pythonique d'évaluer la vérité, null, les chaînes vides, les listes vides sont toutes évaluées comme fausses.
Autres alternatives plus anciennes non recommandées ou même ne fonctionne pas :
result.stdout != ""
ne passerait pas la vérification ansible-lint !result.stdout | bool
ne fonctionnera PAS car la plupart des chaînes seront évaluées comme fausses, seuls les cas où il retournerait vrai sont si stdout se trouve être l'un destrue
,yes
,... sorte de chaînes.result.stdout
fonctionnait auparavant, mais se déclenche désormais :
[AVERTISSEMENT DE DÉPRÉCATION] :évaluant en tant que variable nue, ce comportement disparaîtra et vous devrez peut-être ajouter |bool à l'expression à l'avenir. Voir également CONDITIONAL_BARE_VARS configurationtoggle. Cette fonctionnalité sera supprimée dans la version 2.12. Les avertissements de dépréciation peuvent être désactivés en définissant deprecation_warnings=False inansible.cfg.`