1

我正在运行 Playbook 以在 Windows 目标机器上安装内部软件。在此过程中,我正在打印“msg”日志,以便将其转发给 QA / 合规团队。但是,我不知道如何使用 debug > "msg" 的输出生成日志文件并将其放置在 Windows 主机上。我知道 log_plays 可能有用,但我找不到任何关于如何实际使用该模块的示例。

任何示例代码将不胜感激。

4

2 回答 2

3

因此,遗憾的是,它/var/log/ansible/hosts是硬编码的,但除此之外它应该按照您的预期运行。ansible.cfg您可以通过或$ANSIBLE_STDOUT_CALLBACK环境变量启用回调:

env ANSIBLE_STDOUT_CALLBACK=log_plays ansible-playbook -i host1,host2 the_file.yml

请注意ad-hoc 模式不加载回调插件,因此您需要明确请求:

env ANSIBLE_LOAD_CALLBACK_PLUGINS=yes ANSIBLE_STDOUT_CALLBACK=log_plays \
    ansible -i host1,host2 -m ping '*'

如果该/var/log/ansible/hosts部分对您有问题,还有$ANSIBLE_LOG_PATH可能导致 ansible 将日志输出复制到文件中,并且它在 ad-hoc 模式下工作正常:

env ANSIBLE_LOG_PATH=$PWD/my-log ansible -i host1,host2 -m ping '*'
于 2019-04-19T01:58:09.750 回答
1

可能有点晚了,但是您可以在该部分中添加log_path=mylogfile到您的ansible.cfg文件中defaults

请参阅上面答案中提供的链接。

于 2019-09-29T19:10:31.207 回答