Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 在自定义Ansible模块中是否有用于调试日志记录的标准/首选方法。_Debugging_Logging_Module_Ansible_Trace - Fatal编程技术网

Debugging 在自定义Ansible模块中是否有用于调试日志记录的标准/首选方法。

Debugging 在自定义Ansible模块中是否有用于调试日志记录的标准/首选方法。,debugging,logging,module,ansible,trace,Debugging,Logging,Module,Ansible,Trace,我希望将调试日志添加到我的自定义Ansible模块中,以便在Ansible playbook命令中提供-vvv选项时,我可以看到日志消息,但在其他情况下不会看到。我不希望此日志记录影响模块的结果。换句话说,我不想直接将日志消息写入stdout或stderr。模块通常是远程执行的,因此实际上无法直接输出任何内容 您可以在exit_json调用中返回模块中的其他数据 if module._verbosity >= 3: module.exit_json(changed=True, de

我希望将调试日志添加到我的自定义Ansible模块中,以便在Ansible playbook命令中提供-vvv选项时,我可以看到日志消息,但在其他情况下不会看到。我不希望此日志记录影响模块的结果。换句话说,我不想直接将日志消息写入stdout或stderr。

模块通常是远程执行的,因此实际上无法直接输出任何内容

您可以在
exit_json
调用中返回模块中的其他数据

if module._verbosity >= 3:
    module.exit_json(changed=True, debug="wooha!")
else:
    module.exit_json(changed=True)
module._verbosity
对应于详细级别(-v=1,-vvv=3),自Ansible 2.1起可用


来源:和

Ansible模块很难调试,因为:

  • 模块通常是远程执行的
  • 模块由python子流程执行(因此我们不能使用
    pdb
    进行调试)
因此,您可以通过以下方式调试Ansible模块:

  • 使模块在本地执行。这可以通过将主机设置为localhost或使用Ansible
    local\u操作
    模块来实现
  • 将要调试的变量写入/记录到特定文件中。可以使用Python库完成此操作