是否需要开发模块?
开发 Ansible 模块很简单,但通常并不需要。在你开始编写新的模块之前,问问自己
是否已经存在类似的模块?
现有的模块可能涵盖了你想要的功能。Ansible 集合包含数千个模块。搜索我们的 包含的集合列表 或者 Ansible Galaxy 查看是否已存在满足你需求的模块。
是否应该使用或开发操作插件而不是模块?
操作插件可能是获得你想要的功能的最佳方式。操作插件在控制节点而不是管理节点上运行,并且它们的功能对所有模块都可用。有关开发插件的更多信息,请阅读 开发插件页面.
是否应该使用角色而不是模块?
现有模块的组合可能涵盖了你想要的功能。你可以为这种用例编写一个角色。查看 角色文档.
是否应该创建集合而不是单个模块?
你想要的功能可能太大,无法放在单个模块中。如果你想将 Ansible 连接到新的云提供商、数据库或网络平台,你可能需要 开发新的集合.
每个模块都应该具有简洁且定义良好的功能。基本上,遵循 UNIX 的“做好一件事”的哲学。
模块不应该要求用户了解将要使用的 API/工具的所有底层选项。例如,如果无法记录必需模块参数的合法值,则表明该模块将被拒绝。
模块通常应该包含与资源交互的大部分逻辑。一个没有太多逻辑的轻量级 API 包装器可能会导致用户将太多逻辑卸载到剧本中,因此该模块将被拒绝。相反,尝试创建多个模块来与 API 的较小的单个部分交互。
如果你的用例没有被现有模块、操作插件或角色覆盖,并且你不需要创建多个模块,那么你就可以开始开发新的模块了。从以下主题中选择下一步
我想要 开始开发新的模块.
我想要查看 开发良好模块的提示和约定.
我想要 编写 Windows 模块.
我想要 概述 Ansible 的架构.
我想要 记录我的模块.
我想要 为我的模块添加单元测试和集成测试.
我想要 为我的模块添加 Python 3 支持.
我想要 编写多个模块.