我正在开发一个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的理解是它上传了正在使用的模块并执行它,包括不支持或没有记录的另一个模块.
在此先感谢您的帮助.
引述迈克尔DeHaan的帖子在这里:
一般来说,Ansible允许通过"lib/ansible/module_common.py"共享代码,以使编写功能更容易.
然而,它并没有使一个模块可以调用另一个模块,到目前为止还没有真正需要它 - 这并不完全正确,我们过去常常使用这样的文件和副本,直到我们变得聪明并且移动文件属性代码共同:)
似乎因为url访问频繁,我们可以在url下载常用的模块中创建一个通用函数 - 如果我们修改get_url代码也使用它,所以我们不重复自己.
他后来跟进:
您可以通过编写动作插件来访问模板的工作方式,但它比编写简单的客户端模块更复杂.
将get_url代码移动到共同的+1,这会出现几次.
| 归档时间: |
|
| 查看次数: |
3058 次 |
| 最近记录: |