Ansible产品及工具集介绍和常见的模块详解
Ansible是一款开源运维自动化工具,通过Ansible可以实现运维自动化。
官方地址:https://www.ansible.com/
运维自动化发展;shell 、perl |experct(解决交互)、puppet、ansible(中小型公司使用) | saltatack
Ansible特点:
1.Ansible基于python开发,运维工程师对其二次开发相对比较容易
2.Ansible拥有丰富的内置模块,基本可以满足一切要求
3.管理模式非常简单,一条命令可以影响上千台机器
4.无客户端模式设计,底层基于SSH通信
5.Ansible开发后也陆续被AWX、Gloud Platfrom、Microsoft Azure
Ansible应用;
1.使用者:
1)CMDB:CMDB系统存储和管理着企业IT架构中的各种配置信息,是构建ILI项目核心工具,运维人员可以组合CMDB和Ansible通过CMDB直接下发指令调用Ansible工具完成操作者所希望达到的目标。
2)PUBLIC/PPIVATE方式,Ansible除了丰富内置模块外,同时提供丰富的API语言接口,如PHP,Python,PERL等多种流行语言,基于PUBLIC/PRIVATE,Ansible以APID调用的方式运行
3)Ad-Hoc命令集,User直接通过Ad-Hoc命令集调用Ansible工具来完成工作
4)Playbooks:User预先编写好Ansible Playbooks,通过预先编排好的任务集按序执行
2.Ansible工具集合:
Ansible工具集合了Inventory、Moudles、plugins和APS。
Inventory用来管理设备列表,可以通过分组(不同的业务)实现,对组的调用直接影响组内所有主机;
Moudles是各种执行模块,几乎所有的管理任务都是通过模块来执行的;
plugins提供了各种附加功能
API为编程人员提供了一个调用接口可做Ansible的二次开发
3.作用对象
Ansible的作用对象不仅是Linux和非Linux操作系统主机,也可作用于各类PUBLIC/PRIVATE,商业和非商业设备的网络设施。
使用者使用Ansible或Ansible-playbooks时,在服务器终端输入Ansible的Ad-Hoc命令集或playbooks后,Ansible会通过遵循预先定义安排的规则将playbooks逐步拆解为paly,再将play组成的Ansible可以识别的任务,随后调用任务涉及的所有模块和插件,根据Inventory中定义的主机列表通过SSH将任务集以临时文件或命令的形式传输到远程客户端执行并返回执行结果,如果是临时文件则执行完后自动删除。