如何在Python中调试自定义Ansible模块?

如何在Python中调试自定义Ansible模块?,python,ansible,windows-subsystem-for-linux,Python,Ansible,Windows Subsystem For Linux,我们使用Ansible Playbook调用在AWX/Centos上运行的自定义Python模块。我需要对模块进行一些更改,并希望在我的开发环境(即windows)中本地运行它们。我希望能够分步执行代码&而不是远程运行(不过WSL很好) 我无法在Windows中直接运行该模块,因为pip install Ansible和pip install AnsibleRunner都失败了(我认为这是意料之中的) 我能够在WSL中使用AnsibleRunner启动我的playbook,但它挂起了(我认为它试

我们使用Ansible Playbook调用在AWX/Centos上运行的自定义Python模块。我需要对模块进行一些更改,并希望在我的开发环境(即windows)中本地运行它们。我希望能够分步执行代码&而不是远程运行(不过WSL很好)

我无法在Windows中直接运行该模块,因为pip install Ansible和pip install AnsibleRunner都失败了(我认为这是意料之中的)

我能够在WSL中使用AnsibleRunner启动我的playbook,但它挂起了(我认为它试图通过ssh连接到本地主机)。即使它运行playbook/模块,我怀疑它也不会在我的断点上停止。 现在,我正在wsl中直接运行我的模块(例如module.run_module()),我可以进入它,但在调用以下命令后它永远不会返回:

module = AnsibleModule(
    argument_spec=module_args,
    supports_check_mode=True
)
你知道为什么会停在这里吗?不会生成任何日志或错误。
还有其他建议吗?我希望能够轻松地进行代码更改和测试/逐步完成这些更改。我用其他技术进行了远程调试,但它很糟糕,所以我想避免它。

我发现它被阻塞了,因为AnsibleModule试图通过读取stdin来填充ANSIBLE参数。通过检查代码,我意识到如果第一个参数是有效文件,它将使用一个文件


因此,我现在能够通过WSL/Ubuntu逐步完成从Windows上的VSCode中运行的测试程序调用的自定义模块。

我发现它被阻塞了,因为AnsibleModule试图通过读取stdin来填充ANSIBLE参数。通过检查代码,我意识到如果第一个参数是有效文件,它将使用一个文件

因此,我现在能够通过WSL/Ubuntu逐步完成我的自定义模块,该模块是从运行在Windows上的VSCode中的测试程序调用的