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 no terminal, ele gerencia as novas linhas. Em vez de ver
----------
| OUTPUT |
----------
eu vejo
----------\n| OUTPUT |\n----------
Alguém sabe como fazer com que o Ansible "imprima" a saída?
sed -e 's/\\n/'$'\\\n/g'
. Também relevante: comicjk.com/20\n
aparecem no resultado, assim que você poderia usar esta expressão regular em sua mensagem de depuração:msg: "{{ result.stdout | regex_replace('\\n', '\n') }}"
Se você deseja uma saída mais amigável para o ser humano, defina:
Isso tornará possível o uso do módulo de saída de depuração (nomeado anteriormente
human_log
) whinch, apesar de seu nome infeliz ser menos detalhado e muito mais fácil de ser lido pelos humanos.Se você receber um erro dizendo que este módulo não está disponível, atualize o Ansible ou adicione-o localmente se não puder atualizar o ansible, ele funcionará com versões superiores do ansible como 2.0 ou provavelmente até 1.9.
Outra opção para configurar isso é adicionar
stdout_callback = debug
ao seu ansible.cfgfonte
ANSIBLE_STDOUT_CALLBACK=yaml
. Eu prefiro porque formata bemfail
msg
quando forneço um objeto.Você pode usar um plug-in de retorno de chamada . Isso analisará novamente sua saída e é facilmente ligado e desligado.
fonte
CallbackBase
importadosfrom ansible.plugins.callback import CallbackBase
para que a classe de retorno de chamada funcione.Encontrado desta maneira no fórum do grupo Ansible Project:
Basicamente, transformamos isso em lista, dividindo-o por nova linha e depois imprimindo essa lista.
fonte
ignore_errors: yes
ao comando original e, posteriormente, algo como `- assert: that:" test.rc == 0 ".Você pode usar o módulo de pausa :
Continua sem entrada definindo minutos ou segundos, mas a entrada do usuário não é capturada.
Crédito: https://github.com/ansible/ansible/issues/17446#issuecomment-245391682
fonte
Se você quiser vê-lo em um formato que praticamente imite a saída padrão, poderá usar o
debug
plug-in de retorno de chamada com odebug
módulo no Ansible 2.7+ como este:fonte