模块是Ansible执行特定任务的独立脚本(通常用Python编写,也支持其他语言)。它们是Ansible的核心工作单元。每个模块负责实现一个特定的功能(例如,管理文件、安装软件包、控制服务等)。
因此,模块是插件的一个子集
核心模块:包含在Ansible发行版中,位于lib/ansible/modules
目录下(通过ansible-doc -l
可列出)。
library/
目录library/
目录ANSIBLE_LIBRARY
环境变量指定的路径~/.ansible/plugins/modules/
目录下模块是插件的一种类型:
Ansible 官方将模块归类为 Action Plugins 的子集
所有模块都存储在 ansible/plugins/modules/ 目录中
插件系统的层级结构:
Ansible Plugins System
├── Connection Plugins (ssh, docker, k8s)
├── Modules (核心功能单元)
│ ├── Core Modules (随Ansible分发)
│ ├── Custom Modules (用户自定义)
│ └── Module Utilities (共享代码)
├── Lookup Plugins (变量查询)
├── Filter Plugins (模板过滤)
├── Callback Plugins (输出控制)
└── ...其他插件