咱们是否应该开发一个模组?

开发 Ansible 模组并不难,但往往没有必要。在咱们开始编写某个新模组之前,要问一下:

  1. 是否已有类似的模组?

某个现有模组可能涵盖了咱们想要的功能。Ansible 专辑包含了数千个模组。请检索我们的 所包含专辑列表Ansible Galaxy,看看现有模组是否能满足咱们的需求。

  1. 咱们是否应该使用或开发某个 action 类型的插件,而不是模组?

action 插件可能是获得咱们想要的功能最佳方式。action 插件运行于控制节点而非托管节点,且他们的功能对所有模组都可用。有关开发插件的更多信息,请阅读 开发插件 页面。

  1. 咱们是否应使用角色而不是模组?

现有模组的某种组合,可能会涵盖咱们想要的功能。咱们可以为这类用例编写某个角色。请查看 角色文档

  1. 咱们是否应创建一个专辑而不是单一模组?

单个模组可能无法实现咱们想要的功能。若咱们打算将 Ansible 连接到某个新的云服务提供商、数据库或网络平台,咱们可能需要 开发一个新的专辑

  • 每个模组都应具有简洁且良好定义的功能。基本上,要遵循 UNIX 的做好一件事哲学;
  • 模组不应要求用户了解,要用到的 API/工具的所有底层选项。例如,如果无法为某个必需的模组参数合法值编写文档,就意味着该模组将被拒绝;
  • 模组通常应包含与某项资源交互的大部分逻辑。对不包含太多逻辑的某个 API 的一个轻量级封装器,可能会导致用户将太多逻辑,转移到到 playbook 中,因此该模组就会被拒绝。相反,要尝试创建多个与 API 中较小的单个部分进行交互的模组。

若咱们的用例在现有模组、action 插件或角色中未被涵盖,而且咱们不需要创建多个模组,那么咱们就可以开始开发一个新模组了。

(End)

Last change: 2025-03-11, commit: 1c50f30

小额打赏,赞助 xfoss.com 长存......

微信 | 支付宝

若这里内容有帮助到你,请选择上述方式向 xfoss.com 捐赠。