Comment puis-je voir stdout pour les commandes ansible-playbook? -v affiche uniquement la sortie ansible, pas les commandes individuelles. Ce serait formidable si je pouvais comprendre comment le faire immédiatement, donc si quelque chose échoue ou se bloque, je peux voir pourquoi.
par exemple.
- name: print to stdout
action: command echo "hello"
imprimerait
TASK: [print variable] ********************************************************
hello
Je pense que vous pouvez enregistrer le résultat dans une variable, puis l'imprimer avec le débogage.
- name: print to stdout
command: echo "hello"
register: hello
- debug: msg="{{ hello.stdout }}"
- debug: msg="{{ hello.stderr }}"
Au lieu de stdout je suggère d'utiliser stdout_lines . Pour la sortie multiligne, c'est beaucoup plus agréable, par ex.
- hosts: all
tasks:
- name: Run ls.sh and output "ls /"
script: ls.sh
register: out
- debug: var=out.stdout_lines
donne
TASK: [debug var=out.stdout_lines] ********************************************
ok: [local] => {
"var": {
"out.stdout_lines": [
"total 61",
"lrwxrwxrwx 1 root root 7 Feb 15 2015 bin -> usr/bin",
"drwxr-xr-x 6 root root 1024 Aug 24 22:08 boot",
"drwxr-xr-x 22 root root 3580 Sep 8 18:41 dev",
[...]
"drwxr-xr-x 9 root root 4096 Aug 25 19:14 usr",
"drwxr-xr-x 13 root root 4096 Feb 25 2015 var"
]
}
}
En ce qui concerne la sortie en temps réel à des fins de débogage, il existe un rapport de bogue fermé https://github.com/ansible/ansible/issues/3887#issuecomment-54672569 discutant les raisons pour lesquelles cela n'est pas possible et ne le sera pas être implémenté.
J'ai trouvé en utilisant le minimalstdout_callback
avec ansible-playbook a donné une sortie similaire à l'utilisation de ansible ad-hoc.
Dans votre ansible.cfg (notez que je suis sous OS X donc modifiez le callback_plugins
chemin adapté à votre installation)
stdout_callback = minimal
callback_plugins = /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ansible/plugins/callback
Pour qu'une tâche comme celle-ci
---
- hosts: example
tasks:
- name: Say hi
command: echo "hi ..."
Donne une sortie comme celle-ci, comme le ferait une commande ad hoc
example | SUCCESS | rc=0 >>
hi ...
J'utilise ansible-playbook 2.2.1.0