我需要编写与多个版本的ansible兼容的ansible代码。旧版本的 ansible 没有命名空间,而新版本有。在一个实例中,角色调用了“ansible.builtin.yum”模块,该模块在早期版本的 ansible 中失败。目前,删除前缀就足够了。命名空间行为记录在哪里?据推测,无前缀的模块名称是在名称空间列表中搜索的 - 该列表是什么?有命名空间设计文档吗?我能找到的最接近命名空间设计文档的是https://galaxy.ansible.com/docs/contributing/namespaces.html,它做出了无效的用例假设。
现在,删除“ansible.builtin”。从此类前缀模块的名称中可以看出,但我想了解何时停止使用较新版本的 ansible 的名称空间机制。
您得到的内容取决于配置。见
例如,如果您使用yum,将使用找到的第一个
shell> ansible-doc -t module -l | grep yum
ansible.builtin.yum
Manages packages with the ...
ansible.builtin.yum_repository
Add or re...
community.general.yum_versionlock
Locks / unlocks an installed package(s) from being updated b...
在标准 Ansible 安装中,安装的模块中只有一个 yum。因此doc说:
在大多数情况下,您可以使用短模块名称 yum
相同的规则将适用于您的自定义模块: