Não há como fazer o que você deseja nativamente no Ansible. Você pode fazer isso como uma solução alternativa:
ansible-playbook ... | sed 's/\n/\n/g'
Eu tenho um jogo Ansible para o PGBouncer que exibe alguma saída de um módulo de estatísticas embutido no PGBouncer.
Meu problema é que quando o Ansible imprime a saída para o terminal, ele manipula as novas linhas. Em vez de ver
----------
| OUTPUT |
----------
vejo
----------\n| OUTPUT |\n----------
Alguém sabe como fazer com que o Ansible "imprima bem" a saída?
Se você deseja uma saída mais humana, defina:
ANSIBLE_STDOUT_CALLBACK=debug
Isto irá fazer uso ansible o módulo de saída de depuração (anteriormente denominado human_log
) whinch apesar de seu nome infeliz é menos detalhado e muito mais fácil de ler por seres humanos.
Se você receber um erro que este módulo não está disponível, atualizar Ansible ou adicionar este módulo localmente se você não pode atualizar ansible, ele vai trabalhar com mais versões do ansible como 2.0 ou probaly mesmo 1.9.
Outra opção para configurar este objetivo é adicionar stdout_callback = debug
a sua ansible.cfg
Você pode usar um plug-in de retorno de chamada . Isto irá analisar novamente a sua saída e é facilmente ligado e desligado.
Encontrou esta forma no fórum do grupo Ansible Project:
- name: "Example test"
command:
...
register: test
- name: "Example test stdout"
debug:
msg: "{{ test.stdout.split('\n') }}"
- name: "Example test stderr"
debug:
msg: "{{ test.stderr.split('\n') }}"
Basicamente, transformamos isso em lista dividindo-a por nova linha e, em seguida, imprimindo essa lista.