Qual configuração é necessária para formatar corretamente a saída de fluxo padrão das tarefas em uma ansible-playbook
execução do Ansible?
O que eu executo ansible-playbook foo.yaml
a saída das tarefas inclui o conteúdo de fluxo padrão ( stdout
, stderr
). Mas a exibição deles está em um grande blob JSON de linha única e não é impresso como as linhas formatadas que foram enviadas para o fluxo.
TASK [Django: Collect media fixture files] ******************************************************************************
ok: [lorem]
TASK [Django: Create superuser] ******************************************************************************
fatal: [lorem]: FAILED! => {"changed": false, "cmd": "python3 -m django createsuperuser\n --noinput\n --username \"admin\"\n --email \"[email protected]\"", "msg": "\n:stderr: CommandError: You must use --full_name with --noinput.\n", "path": "/var/local/dolor/virtualenv/rectory/venv.py3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/games", "syspath": ["/tmp/ansible_django_manage_payload_uj9f3le8/ansible_django_manage_payload.zip", "/usr/lib/python37.zip", "/usr/lib/python3.7", "/usr/lib/python3.7/lib-dynload", "/usr/local/lib/python3.7/dist-packages", "/usr/lib/python3/dist-packages"]}
O que está causando essa formatação indesejada da saída? Como posso dizer ao Ansible para sempre formatar a saída do fluxo corretamente para exibição na ansible-playbook
saída?
O padrão do Ansible é uma saída JSON legível por máquina, não adequada para leitura humana. Mas existem outros módulos de “retorno de chamada” disponíveis , alguns dos quais podem formatar a saída do fluxo.
debug
O módulo com nome enganoso é mais adequado para visualização humana.yaml
módulo formata a saída do stream como um documento YAML de fácil leitura.Então, usando a
ANSIBLE_STDOUT_CALLBACK
variável de ambiente:mudará a formatação da saída do fluxo: