如何在 Ansible 中为特定任务或模块制作详细输出

use*_*546 4 ansible ansible-2.x

我正在使用 AWS ec2 模块,我想记录每个命令发送到 AWS 的用户数据,但我不希望所有其他无用任务的详细输出。

有什么方法可以启用ec2模块的详细信息吗?

Kon*_*rov 8

我同意@techraf 的观点,没有现成的方法可以做到这一点。
但是 Ansible 很容易通过插件进行调整!

将此代码删除为<playbook_dir>/callback_plugins/verbose_tasks.py

from ansible.plugins.callback import CallbackBase
import json

try:
    from __main__ import display
except ImportError:
    display = None

class CallbackModule(CallbackBase):

    def v2_runner_on_any(self, result, ignore_errors=False):
        if (result._task.action in ['file','stat']):
            print '####### DEBUG ########'
            print json.dumps(result._result,indent=4)
            print '####### DEBUG ########'

    v2_runner_on_ok = v2_runner_on_any
    v2_runner_on_failed = v2_runner_on_any
Run Code Online (Sandbox Code Playgroud)

您可以通过更改['file','stat']列表来调整要打印的模块结果。
如果您只需要ec2,请将其替换为['ec2'].