如何使用回调插件`log_plays`并使用`ansible-playbook`同时保持`stdout`屏幕输出?

问题描述 投票:0回答:1

ansible.cfg
中添加以下内容:

stdout_callback = log_plays
callback_whitelist = log_plays 

启用

log_plays
回调插件会抑制运行
ansible-playbook
提供的标准屏幕输出。

是否有办法在利用

stdout
功能的同时保留
log_plays

我尝试在

ansible.cfg

中启用以下功能
DEFAULT_VERBOSITY = 1
log_path = /var/log/ansible.log

但是日志文件不是很干净。

看看是否有“更好”的方式来记录剧本?

ansible ansible-2.x
1个回答
0
投票

如何使用回调插件

log_plays
并使用
stdout
同时保持
ansible-playbook
屏幕输出?

只需将其列入白名单即可。

带有

ansible.cfg

[default]
stdout_callback         = yaml
callback_whitelist      = timer, profile_tasks, log_plays

[callback_log_plays]
log_folder              = /tmp/ansible/hosts

一个最小的示例手册

---
- hosts: test
  become: false
  gather_facts: false

  tasks:

  - debug:

将导致

stdout

PLAY [test] *********************************************************************************************
Saturday 14 October 2023  12:45:15 +0200 (0:00:00.041)       0:00:00.041 ******

TASK [debug] ********************************************************************************************
ok: [test.example.com] =>
  msg: Hello world!

PLAY RECAP **********************************************************************************************
test.example.com  : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Playbook run took 0 days, 0 hours, 0 minutes, 0 seconds
Saturday 14 October 2023  12:45:15 +0200 (0:00:00.068)       0:00:00.109 ******
===============================================================================

和日志文件

~/test$ ll /tmp/ansible/hosts/
total 52
-rw-r--r--. 1 ansible_user users   314 Oct 14 12:45 test.example.com

有内容

~/test$ cat /tmp/ansible/hosts/test.example.com
Oct 14 2023 12:45:15 - log_plays.yml -  - debug - OK - {"msg": "Hello world!", "changed": false, "_ansible_verbose_always": true, "_ansible_no_log": false}

进一步问答

关于

log_plays
回调用法

© www.soinside.com 2019 - 2024. All rights reserved.