Je veux vérifier la commande multiligne exécutée par le module shell dans le module de débogage suivant avec un saut de ligne.
Je n'ai pas trouvé de filtre approprié, mais c'est possible avec splitlines () de python
playbook.yml
---
- hosts: all
gather_facts: false
tasks:
- shell: |
echo a
echo b
echo c
register: r
- debug: { var: r.cmd } # <=Difficile à lire si la sortie est telle qu'elle est
- debug: { var: r.cmd.splitlines() } # <= splitlines()Séparé à
- debug: { var: r.stdout_lines }
- debug: { var: r.stderr_lines }
$ ansible-playbook -i localhost, -c local playbook.yml
PLAY [all] *******************************************************************************************************
TASK [shell] *****************************************************************************************************
changed: [localhost]
TASK [debug] *****************************************************************************************************
ok: [localhost] => {
"r.cmd": "echo a\n echo b\necho c\n" # <=Exemple de sortie tel quel
}
TASK [debug] *****************************************************************************************************
ok: [localhost] => {
"r.cmd.splitlines()": [
"echo a", # <=Exemple de sortie séparée par des lignes
" echo b", # <=Exemple de sortie séparée par des lignes
"echo c" # <=Exemple de sortie séparée par des lignes
]
}
TASK [debug] *****************************************************************************************************
ok: [localhost] => {
"r.stdout_lines": [
"a",
"b",
"c"
]
}
TASK [debug] *****************************************************************************************************
ok: [localhost] => {
"r.stderr_lines": []
}
PLAY RECAP *******************************************************************************************************
localhost : ok=5 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Notez que le module de commande (et non le module shell) ne peut pas être utilisé car il n'est pas passé sous forme de chaîne à la variable de registre. Ce serait bien s'il pouvait être affiché séparément par ligne même en cas d'échec.
Recommended Posts