Eu tenho um jogo Ansible para 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 confunde as novas linhas. Em vez de ver
----------
| OUTPUT |
----------
Eu 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 amigável, defina:
Isso fará com que o ansible use o módulo de saída de depuração (anteriormente denominado
human_log
) whinch, apesar de seu nome infeliz ser menos detalhado e muito mais fácil de ler por humanos.Se você receber um erro informando que este módulo não está disponível, atualize o Ansible ou adicione este módulo localmente, se não puder atualizar o ansible, ele funcionará com versões do ansible como 2.0 ou provavelmente até 1.9.
Outra opção para configurar isso é adicionar
stdout_callback = debug
ao seu ansible.cfgNão há uma maneira de fazer o que você deseja nativamente no Ansible. Você pode fazer isso como uma solução alternativa:
Encontrado desta forma no fórum do grupo Ansible Project:
Basicamente, transformamos isso em lista, dividindo-a por nova linha e imprimindo essa lista.
Você pode usar um plug-in de retorno de chamada . Isso analisará novamente sua saída e é facilmente ativado e desativado.
Se você quiser vê-lo em um formato que praticamente imite a saída padrão, você pode usar o
debug
plug-in de retorno de chamada com odebug
módulo no Ansible 2.7+ assim:Se você não estiver executando em hosts paralelos, poderá 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
Observação: em hosts paralelos, apenas a saída do primeiro host será exibida
Apesar de não ser uma resposta concreta, tive o mesmo problema dentro da minha equipe e implementamos o projeto ara , que é um software de código aberto para tornar o ansible amigável ao ser humano.
Você pode conferir aqui uma demonstração ao vivo.