Ansbile基本介绍
Ansible 是一个开源的基于 OpenSSH 的自动化配置管理工具。可以用它来配置系统、部署软件和编排更高级的 IT 任务,比如持续部署或零停机更新。
Ansible 的主要目标是简单和易用,并且它还高度关注安全性和可靠性。基于这样的目标,Ansible 适用于开发人员、系统管理员、发布工程师、IT 经理,以及介于两者之间的所有人。Ansible 适合管理几乎所有的环境,从拥有少数实例的小型环境到有数千个实例的企业环境。
使用 Ansible 无须在被管理的机器上安装代理,所以不存在如何升级远程守护进程的问题,也不存在由于卸载了守护进程而无法管理系统的问题。
Ansible 是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
Ansible 的优点:
1. ansible融合了众多老牌运维工具的优点,基本上pubbet和saltsatck能实现的功能,ansible都可以显现。
2. 轻量级,无需在客户端上安装agent,更新时,只需要在操作机上进行一次更新即可。
3. ansible是一个轻量级的工具,ansible不需要启动服务,仅仅只是一个工具,可以轻松实现分布式扩展。
4. 批量任务执行可以写成脚本,而且不用分发的远程就可以执行。
5. ansible是一致性,高可靠性,安全性设计的轻量级自动化工具。
6. 使用python编写,维护更加简单。
Ansible 的基本架构

Ansible 的基本架构
从上图可以了解到其由以下部分组成:
1. 核心:ansible
2. 核心模块(Core Modules):这些都是ansible自带的模块
3. 扩展模块(Custom Modules):如果核心模块不足以完成某种功能,可以添加扩展模块
4. 插件(Plugins):完成模块功能的补充
5. 剧本(Playbooks):ansible的任务配置文件,将多个任务定义在剧本中,由ansible自动执行
6. 连接插件(Connectior Plugins):ansible基于连接插件连接到各个主机上,虽然ansible是使用ssh连接到各个主机的,但是它还支持其他的连接方法,所以需要有连接插件
7. 主机群(Host Inventory):定义ansible管理的主机
Ansible 的工作原理

Ansible工作原理
1.管理端支持local 、ssh、zeromq 三种方式连接被管理端,默认使用基于ssh的连接- - -这部分对应基本架构图中的连接模块;
2.可以按应用类型等方式进行Host Inventory(主机群)分类,管理节点通过各类模块实现相应的操作- - -单个模块,单条命令的批量执行,我们可以称之为ad-hoc;
3. 管理节点可以通过playbooks 实现多个task的集合实现一类功能,如web服务的安装部署、数据库服务器的批量备份等。playbooks我们可以简单的理解为,系统通过组合多条ad-hoc操作的配置文件 。