Ansible stdout_callback log_playsиспользует тот же формат, что и обычный стандартный вывод playbook

#ansible

#ansible

Вопрос:

Я установил следующее в свой раздел ansible.cfg [defauls]:

 callback_whitelist = log_plays yaml
stdout_callback = log_plays
  

И все в порядке, поскольку он записывает выходные данные в /var/log/ansible/hosts/{nodename}

Проблема заключается в формате вывода. Это полный дамп json из данных ansible; Я хотел бы видеть тот же формат, который я вижу, когда нажимаю ansible-playbook. log_playsне настраивается.

Возможно ли это вообще без программирования другого обратного вызова на python (или изменения созданного)?

Ответ №1:

Это не тот ответ, который вы хотите, но, возможно, это может вам помочь.

Создайте исполняемый файл logging.sh

 #!/bin/bash

export ANSIBLE_LOG_PATH=/home/user/ansibleLogs/playbook_$(echo $1 | cut -d . -f 1)_$(date  %Y%m%d%H%M%S).log
ansible-playbook $@
  

Добавьте эту строку в свой .bashrc файл

alias ansible-playbook="/path/to/logging.sh"

Выполнить

source /home/user/.bashrc

Затем, когда вы выполняете playbook, это создаст журнал для этого выполнения, например

 ansible-playbook test.yml
  

Это создаст файл playbook_test_20201111203726.log в пути /home/user/ansibleLogs .

     2020-11-11 20:37:26,988 p=1829212 u=glopez n=ansible | PLAY [localhost] ***************************************************************************************
    2020-11-11 20:37:27,004 p=1829212 u=glopez n=ansible | TASK [debug] *******************************************************************************************
    2020-11-11 20:37:27,039 p=1829212 u=glopez n=ansible | ok: [localhost] => {
        "msg": "/home/glopez/Downloads/playbook_test_20201111203726.log"
    }
    2020-11-11 20:37:27,042 p=1829212 u=glopez n=ansible | TASK [set_fact] ****************************************************************************************
    2020-11-11 20:37:27,083 p=1829212 u=glopez n=ansible | ok: [localhost]
    2020-11-11 20:37:27,089 p=1829212 u=glopez n=ansible | TASK [debug] *******************************************************************************************
    2020-11-11 20:37:27,143 p=1829212 u=glopez n=ansible | ok: [localhost] => {
        "Test": []
    }
    2020-11-11 20:37:27,151 p=1829212 u=glopez n=ansible | PLAY RECAP *********************************************************************************************
    2020-11-11 20:37:27,151 p=1829212 u=glopez n=ansible | localhost                  : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0