Ansible简介
1、选择Ansible的原因
1)Ansible基于python开发,而python被逐渐普及,方便对Ansible进行二次开发;
2)Ansible具有丰富的内置模块(甚至还有专门为商业平台开发的功能模块),满足日常功能所需;
3)Ansible去中心化概念,可以通过简单的复制操作完成管理配置中心的转移;
4)Ansible无客户端,管理端配置完成后即可使用。
2、Ansible工作方式
Ansible没有客户端,底层通信依靠系统软件,Linux系统基于OpenSSH通信,Windows系统基于PowerShell通信;管理端必须是Linux系统,使用者通过认证后,通过Ansible管理工具调用各种模块推送至管理端执行,执行完毕后自动删除产生的临时文件。
Ansible工作过程下分三种角色:
1)使用者
1. 通过CMDB(配置管理数据库)直接下发命令调用Ansible工具集完成对应所需操作;
2. Ansible基于PUBLIC(公有云)/ PRIVATE(私有云)以API调用的方式运行;
3. 使用者直接使用Ad-Hoc临时命令集调用Ansible工具集执行任务;
4. 使用者预先编写好Ansible PLAYBOOK(剧本),通过执行剧本中预先定义编排好的任务集顺序,执行任务
2)Ansible工具集
1. INVENTORY(清单)【命令执行的目标对象配置文件】
2. API(第三方程序调用的应用程序编程接口)
3. MODULES(内置模块)
4. PLUGINS(内置 / 可定义插件)
3)作用对象
Linux & 非Linux主机、各类公有 / 私有云、商业 / 非商业设备的网络设施
3、Ansible通信
Ansible通信方式是基于安全可靠的SSH安全连接,同时因为SSH是每一台Linux主机系统默认安装完成的,因此Ansible无需额外安装其它进程,实现无客户端,进而助力完成去中心化的思想。
1)Ansible SSH工作机制