Plugins 如何从自定义Ansible模块调用内置Ansible模块?

Plugins 如何从自定义Ansible模块调用内置Ansible模块?,plugins,module,ansible,Plugins,Module,Ansible,我编写了一个自定义Ansible模块,该模块将查询我的cmdb以获取主机详细信息。接下来,我需要调用内置的add_host模块来迭代这些结果并更新Ansible清单 有人能举一个简单的例子说明如何从自定义Ansible模块调用内置模块add\u host?我在网上查了一下,找不到任何具体描述这一点的文件 当我看到builinadd_host的东西时,似乎该模块只是用于DOC部分,并作为指向插件的指针。看看这个插件,我不确定如何远程导入/调用它 这是我机器上的两个文件,用于add\u host:

我编写了一个自定义Ansible模块,该模块将查询我的cmdb以获取主机详细信息。接下来,我需要调用内置的
add_host
模块来迭代这些结果并更新Ansible清单

有人能举一个简单的例子说明如何从自定义Ansible模块调用内置模块
add\u host
?我在网上查了一下,找不到任何具体描述这一点的文件

当我看到builin
add_host
的东西时,似乎该模块只是用于DOC部分,并作为指向插件的指针。看看这个插件,我不确定如何远程导入/调用它

这是我机器上的两个文件,用于
add\u host

  • /opt/pyats/lib/python3.7/site-packages/ansible/modules/inventory/add_host.py
  • /opt/pyats/lib/python3.7/site-packages/ansible/plugins/action/add_host.py

谢谢大家!

添加主机作为一个动作插件实现。Ansible引擎将检查是否存在与任务(添加主机)同名的操作插件。如果存在,它将调用该操作插件。如果不存在,它将尝试搜索与任务名称对应的模块文件名。 这通常适用于在控制节点本身上执行的模块

下面是从一个模块调用另一个模块的示例。在本例中,community.yang.get模块(操作插件)在内部调用ansible.netcommon.netconf_get模块