开发的Ansible模块可以包含或扩展Ansible Core模块吗?

fer*_*nts 9 python ansible

我正在开发一个Ansible模块,它生成一个url,从我的内部artifactory中获取该url的tarball(如get_url),然后将其解压缩.我想知道是否有办法在我的模块中包含或扩展get_url Ansible核心模块.我不能在多个步骤中使用它,因为正在使用的url是从git哈希生成的,需要多步搜索.

如果没有办法,我可能只需复制整个get_url模块并在我的模块中使用它,但我想避免这种情况.

我想做点什么:

module_json_response = module.get_module('get_url').issue_command('url=http://myartifactory.com/my_artifact.tar.gz dest=/path/to/local/my_artifact.tar.gz');

我对Ansible的理解是它上传了正在使用的模块并执行它,包括不支持或没有记录的另一个模块.

在此先感谢您的帮助.

Mxx*_*Mxx 9

引述迈克尔DeHaan的帖子在这里:

一般来说,Ansible允许通过"lib/ansible/module_common.py"共享代码,以使编写功能更容易.

然而,它并没有使一个模块可以调用另一个模块,到目前为止还没有真正需要它 - 这并不完全正确,我们过去常常使用这样的文件和副本,直到我们变得聪明并且移动文件属性代码共同:)

似乎因为url访问频繁,我们可以在url下载常用的模块中创建一个通用函数 - 如果我们修改get_url代码也使用它,所以我们不重复自己.

他后来跟进:

您可以通过编写动作插件来访问模板的工作方式,但它比编写简单的客户端模块更复杂.

将get_url代码移动到共同的+1,这会出现几次.