ansible

一.ansible简单介绍

        ansible是新出现的自动化运维工具,基于Python开发,集合了众多老牌运维工(puppet、cfengine、chef、func、 fabric) 的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
        ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。 主要包括:
        (1)连接插件connection plugins:负责和被管控端实现通信;
        (2) host inventory:指定操作的主机,是一个配置文件里面定义管控的主机; 
        (3)各种模块核心模块、command模块、自定义模块;
        (4)借助于插件完成记录日志邮件等功能;
        (5) playbook:剧本执行多个任务时,可以让被管控端一次性运行多 个任务。


Ansible特性

◆(1) no agents:不需要在被管控主机上安装任何客户端;

◆(2)noserver:无服务器端,使用时直接运行命令即可;
作机.上进行一次更新即可;

◆(3) modules in any languages:基于模块工作,可使用任意语言开发模块;
◆(4) yaml,not code:使用yaml语言定制剧本playbook;

◆(5) ssh by default: 基于SSH工作;

◆(6) strong multi_tier solution. 可实现多级指挥


Ansible优点

◆(1)轻量级,无需在客户端安装agent,更新时,只需在操作机.上进行一次更新即可;
◆(2) 批量任务执行可以写成脚本,而且不用分发到远程就可以执行;
◆(3)使用python编写,维护更简单,ruby语法过于复杂;
◆(4)支持sudo。
 

Ansible架构图

ansible_第1张图片


Ansible系统架构
●核心引擎:即Ansibler
●核心模块(core modules ):这些都是Ansible自带的模块。
●自定义模块(custem modules): 如果核心模块不足以完成某种功能, 可以添加自定义模块。
●插件(plugins): 完成模块功能的补充,借助于插件完成记录日志、邮件等功能。
●剧本(playbook):定义Ansible任务的配置文件, 可以将多个任务定义在一一个剧本中,由Ansible 自动执行,剧本执行支持多 个任务,可 以由控制主机运行多个任务,同时 对多台远程主机进行管理。
●playbook是Ansible 的配置、部署和编排语言,可以描述一- 个你想要的远程系统执行策略,或一一组步骤的一般过程。
●连接插件5connectior plugins) : Ansible 基连接插件连接到各个主机上,负 责私摄管节点实现
通信。
●主机清单(host inventory): 定义Ansible管理的主机策略,默认是在Ansible的hosts配置文件中定
义被管节点
 

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

ansible_第2张图片

二.Ansible的安装

yum install ansible  -y

ansible  --version    //测试安装的版本

你可能感兴趣的:(ansible)