Ansible 简介

ansible是什么

Ansible 自动化运维工具中的一种,是一个配置管理和应用部署工具,基于Python研发。集合众多老牌运维工具的优点,实现了批量操作系统配置、批量程序的部署、批量运行命令等功能。

Ansible 是AnsibleWorks 公司名下的项目,该公司由 Cobbler 及 Func 的作者于 2012 年创建成立。

ansible的优点

  1. ansible融合了众多老牌运维工具的优点

  2. 轻量级的工具,只需在主控端部署Ansible环境,无需启动服务,无需在客户端上安装agent,可以轻松实现分布式扩展

  3. 批量任务执行可以写成脚本,而且不用分发到远程就可以执行。

  4. 幂等性:一个任务执行一遍和执行N遍地效果一样,不因重复执行带来意外情况

  5. 模块化:调用特定地模块,完成特定地任务

  6. ansible是一致性,高可靠性,安全性设计的轻量级自动化工具。

  7. 使用python编写,维护更加简单。

ansible能实现什么功能

ansible可以帮助我们完成一些批量任务,或者完成一些需要经常重复的工作。
比如:同时在100台服务器上安装nginx服务,并在安装后启动它们。
比如:将某个文件一次性拷贝到100台服务器上。
比如:每当有新服务器加入工作环境时,你都要为新服务器部署某个服务,也就是说你需要经常重复的完成相同的工作。
这些场景中我们都可以使用到ansible。

ansible的基本架构

Ansible 简介_第1张图片

  • 核心:ansible

  • 核心模块(Core Modules):Ansible执行命令的功能模块,这些都是ansible自带的模块

  • 扩展模块(Custom Modules):如果核心模块不足以完成某种功能,可以添加扩展模块

  • 插件(Plugins):完成模块功能的补充,如连接类型插件,循环插件,变量插件,过滤插件等

  • 剧本(Playbooks):ansible的任务配置文件,将多个任务定义在剧本中,由ansible自动执行

  • 连接插件(Connectior Plugins):ansible基于连接插件连接到各个主机上,虽然ansible是使用ssh连接到各个主机的,但是它还支持其他的连接方法,所以需要有连接插件

  • 主机群(Host Inventory):定义ansible管理的主机

ansible的工作原理

Ansible 简介_第2张图片

从上面的图上可以了解到:

1、管理端支持local 、ssh、zeromq 三种方式连接被管理端,默认使用基于ssh的连接---这部分对应基本架构图中的连接模块;

2、可以按应用类型等方式进行Host Inventory(主机群)分类,管理节点通过各类模块实现相应的操作---单个模块,单条命令的批量执行,我们可以称之为ad-hoc;

3、管理节点可以通过playbooks 实现多个task的集合实现一类功能,如web服务的安装部署、数据库服务器的批量备份等。playbooks我们可以简单的理解为,系统通过组合多条ad-hoc操作的配置文件 。

你可能感兴趣的:(Ansible 简介)