2023年12月14日
Ansible介绍
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible 的特点
1、部署简单,没有客户端,只需在主控端部署Ansible环境,被控端无需做任何操作;
- 模块化:调用特定的模块,完成特定任务
- 默认使用SSH协议对设备进行管理;
- 主从集中化管理;
5、配置简单、功能强大、扩展性强;
6、支持API及自定义模块,可通过Python轻松扩展;
7、通过Playbooks来定制强大的配置、状态管理 - 对云计算平台、大数据都有很好的支持;
- 具有幂等性:一个操作在一个主机上执行一遍和执行N遍的结果是一样的
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:
(1)、连接插件connection plugins:负责和被监控端实现通信;
(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3)、各种模块核心模块、command模块、自定义模块;
(4)、借助于插件完成记录日志邮件等功能;
(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务
原理:
Ansible没有客户端,因此底层通信依赖于系统软件,Linux系统下基于OpenSSH通信Windows系统下基于PowerShell,管理端必须是Linux系统,使用者认证通过后在管理节点通过Ansible工具调用各应用模块将指令推送至被管理端执行,并在执行完毕后自动删除产生的临时文件。