Ansible测试模块在执行前损坏可执行文件

Ansible测试模块在执行前损坏可执行文件,ansible,Ansible,我正在开发一个新的Ansible模块,我想使用Ansible脚本来验证它是否正常工作,如前所述 可执行文件是独立的,它自己可以按预期工作,但在其上运行Ansible测试模块失败 我注意到,在调用可执行文件之前,Ansible测试模块执行以下操作: from ansible.module_utils.basic import * 它将可执行文件重命名为生成的.ansible_module_,并将其放入my home目录 它在可执行文件的末尾追加一个换行符 我的可执行文件是压缩格式的,附加的换行符

我正在开发一个新的Ansible模块,我想使用Ansible脚本来验证它是否正常工作,如前所述

可执行文件是独立的,它自己可以按预期工作,但在其上运行Ansible测试模块失败

我注意到,在调用可执行文件之前,Ansible测试模块执行以下操作:

from ansible.module_utils.basic import *
它将可执行文件重命名为生成的.ansible_module_,并将其放入my home目录 它在可执行文件的末尾追加一个换行符 我的可执行文件是压缩格式的,附加的换行符会破坏其内部验证。此外,可执行文件要求保留原始可执行文件名,因此重命名也是一个问题


上述行为是否特定于测试模块(这意味着我可以通过剥离额外的换行符并避免重命名操作来轻松调整测试模块脚本),还是测试模块试图模拟的一般Ansible行为?有什么解决方法吗?

在Ansible运行模块之前,它将查找从Ansible.module导入*的行,如下所示:

from ansible.module_utils.basic import *
然后,它将用导入模块的实际内容替换此行。这是为了避免将模块的多个文件传送到目标计算机。不仅仅是基本模块,这是最常见的,因为它包括AnsibleModule,AnsibleModule是解析参数等的助手


为了测试模块,测试模块必须执行相同的操作。这是由内部模块替换器完成的。如果您的模块格式不支持此功能,我怀疑它会一直损坏。

您好,谢谢您提供的信息。你能给我一个参考吗?代码的哪一部分正在这样做?