Ansible 工具集包含 Inventory、Modules、Plugins 和 API。
其中:Inventory:用来管理设备列表,可以通过分组实现,对组的调用直接影响组内的所有主机;Modules:是各种执行模块,几乎所有的管理任务都是通过模块执行的;Plugins:提供了各种附加功能;API:为编程人员提供一个接口,可以基于此做 Ansible的二次开发;具体表现如下:
Ansible Playbooks:任务脚本,编排定义Ansible任务及的配置文件,由Ansible按序依次执行,通常是JSON格式的YML文件;
Inventory:Ansible 管理主机清单;
Modules:Ansible 执行命令功能模块,多数为内置的核心模块,也可自定义;
Plugins:模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等,该功能不太常用;
API:供第三方程序调用的应用程序编程接口;
Ansible:该部分图中表现得不太明显,组合 Inventory、API、Modules、Plugins可以理解为是 Ansible 命令工具,其为核心执行工具;
Ansible 的作用对象不仅仅是 Linux 和非 Linux 操作系统的主机,也可以作用于各类PUBLIC/PRIVATE、商业和非商业设备的网络设施。
使用者使用 Ansible 或 Ansible-Playbooks 时,在服务器终端输入 Ansible 的 Ad-Hoc命令集或 Playbooks 后,Ansible 会遵循预选安排的规则将 Playbooks 逐步拆解为Play,再将 Play 组织成 Ansible 可以识别的任务,随后调用任务涉及的所有模块和插件,根据 Inventory 中定义的主机列表通过 SSH 将任务集以临时文件或命令的形式传输到远程客户端执行并返回执行结果,如果是临时文件则执行完毕后自动删除。