Acho que você pode registrar o resultado em uma variável e, em seguida, imprimir com a depuração.
- name: print to stdout
command: echo "hello"
register: hello
- debug: msg="{{ hello.stdout }}"
- debug: msg="{{ hello.stderr }}"
Como eu vejo stdout para comandos ansible-playbook? -v mostra apenas uma saída ansible, não os comandos individuais. Seria ótimo se eu pudesse descobrir como fazer isso imediatamente, então se algo falhar ou trava eu posso ver o porquê.
por exemplo,
- name: print to stdout
action: command echo "hello"
imprimiria
TASK: [print variable] ********************************************************
hello
Acho que você pode registrar o resultado em uma variável e, em seguida, imprimir com a depuração.
- name: print to stdout
command: echo "hello"
register: hello
- debug: msg="{{ hello.stdout }}"
- debug: msg="{{ hello.stderr }}"
Em vez de stdout , sugiro usar stdout_lines . Para a saída multilinha, isso é muito mais agradável, por exemplo,
- hosts: all
tasks:
- name: Run ls.sh and output "ls /"
script: ls.sh
register: out
- debug: var=out.stdout_lines
dá
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"
]
}
}
Em relação à saída em tempo real para fins de depuração, há um relatório de bug fechado link discutir as razões pelas quais isso não é possível e não será implementado.
Eu encontrei usando o mínimo stdout_callback
com o ansible-playbook deu um resultado semelhante ao uso de anúncios ad-hoc.
Em seu ansible.cfg (Observe que estou no OS X, então modifique o caminho callback_plugins
para adequar sua instalação)
stdout_callback = minimal
callback_plugins = /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ansible/plugins/callback
Para que uma tarefa como essa
---
- hosts: example
tasks:
- name: Say hi
command: echo "hi ..."
Dá saída como essa, como um comando ad-hoc faria
example | SUCCESS | rc=0 >>
hi ...
Estou usando o ansible-playbook 2.2.1.0