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