- 常用自动化运维工具
- CFengine
- Chef
- Puppet
基于Ruby开发,采用C/S架构,扩展性强,基于SSL认证 - SaltStack
基于python开发,采用C/S架构,相对于puppet更轻量级,配置语法采用YMAL,是的配置脚本更为简单 - Ansible
基于python开发,分布式,无需客户端,可以通过ssh互信管理,轻量级,配置语言采用YMAL
- 为什么选择ansible
- 相对于puppet和saltstack、ansible无需客户端,更轻量级
- ansible甚至都不用启动服务,仅仅只是一个工具,可以很轻松的实现分布式扩展
- 更强的远程命令执行操作
- 不输于puppet和saltstack的其他功能
- ansible基本结构
4.ansible基本组成
- 核心:ansible
- 核心模块(Core Modules):这些都是ansible自带的模块
- 扩展模块(Custom Modules):如果核心模块不足以完成某种功能,可以添加扩展模块
- 插件(Plugins):完成模块功能的补充
- 剧本(Playbooks):ansible的任务配置文件,将多个任务定义在剧本中,由ansible自动执行
- 连接插件(Connectior Plugins):ansible基于连接插件连接到各个主机上,虽然ansible是使用ssh连接到各个主机的,但是它还支持其他的连接方法,所以需要有连接插件
- 主机群(Host Inventory):定义ansible管理的主机
5.ansible工作原理
- ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
- ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:
(1)、连接插件connection plugins:负责和被监控端实现通信;
(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3)、各种模块核心模块、command模块、自定义模块;
(4)、借助于插件完成记录日志邮件等功能;
(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。