在
ansible.cfg
中添加以下内容:
stdout_callback = log_plays
callback_whitelist = log_plays
启用 log_plays 回调插件会抑制运行
ansible-playbook
提供的标准屏幕输出。无论如何,有没有办法在利用 log_plays 功能的同时保留标准输出?
我尝试在
ansible.cfg
中启用以下功能:
DEFAULT_VERBOSITY = 1
log_path = /var/log/ansible.log
但是日志文件不是很干净。看看是否有“更好”的方式来记录剧本?
如何使用回调插件
并使用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
回调用法