Ansible工作流程详解
1:Ansible的使用者
------>Ansible的使用者来源于多种维度,(1):CMDB(Configuration Management Database,配置管理数据库),CMDB存储和管理着企业的IT架构中的各项配置信息,是构建ITIL项目的核心工具,运维人员可以组合CMDB和Ansible,通过CMDB直接下发指令调用Ansible工具集完成指定的目标。(2):openstack/AWS方式,即私有云/公有云方式,Ansible除了丰富的内置模块,同时也提供了丰富的API语言接口,例如:PHP\PYTHON\PERL等。基于公有云和私有云,Ansible以API调用的方式运行。(3):USERS(用户)直接使用Ad-Hoc临时命令集调用Ansible工具集来完成任务执行。(4):用户预先编写好的Ansible PlayBooks,通过执行playbooks中预先编排好的任务集按序完成任务执行。
2:Ansible的组成
------>Ansible主要由一下6部分组成
- Ansible Playbooks:任务集,编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,通常是json格式的YML文件。
- Inventory:Ansible管理主机的清单。
- Modules:Ansible执行命令的功能模块,多数为内置的核心模块,也支持自定义
- Plugins:模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等,改功能不常用。
- API:供第三方程序调用的应用程序编程接口;
- Ansible:此处指的是组合nventory、Modules、Plugins、API的Ansible命令工具,其为核心执行工具
3:工作流程
---------->上图展示了Ansible组建调用关系,使用者使用Ansible或Ansible-playbooks时,在服务器终端输入Ansible的Ad-Hoc命令集或palybook后,Ansible会遵循预先编排的规则将Playbooks逐条拆解为Play,再将paly组织成Ansible可识别的任务(Task),随后调用任务涉及的所有模块(modules)和插件(plugins),根据Inventory中定义的主机列表通过SSH将任务集以临时文件或命令的形式传输到远程客户端执行并返回执行结果,如果是临时文件,则执行完毕后自动删除。
PS:本文的产生来自于Ansible权威指南一书。