Comment puis-je tester que stderr est non vide ::
- name: Check script
Shell: . {{ venv_name }}/bin/activate && myscritp.py
args:
chdir: "{{ home }}"
Sudo_user: "{{ user }}"
register: test_myscript
- debug: msg='myscritp is Ok'
when: not test_myscript.stderr
Donc, s'il n'y a pas d'erreur, je pourrais lire:
TASK: [deploy | debug msg='critp is Ok] *******
ok: [vagrant] => {
"msg": "myscritp is Ok"
}
Et une erreur FATAL dans cas stderr n'est pas vide.
Vous pouvez vérifier la chaîne vide (lorsque stderr est vide)
- name: Check script
Shell: . {{ venv_name }}/bin/activate && myscritp.py
args:
chdir: "{{ home }}"
Sudo_user: "{{ user }}"
register: test_myscript
- debug: msg='myscritp is Ok'
when: test_myscript.stderr == ""
Si vous voulez vérifier l’échec:
- debug: msg='myscritp has error: {{test_myscript.stderr}}'
when: test_myscript.stderr != ""
Regardez aussi cette question stackoverflow question
Option sans avertissement Ansible Galaxy est
when: test_myscript.stderr | length > 0