00Ansible开篇

一、Ansible 概述

  • Ansible 是一个配置管理和自动化运维工具。
  • Ansible 基于 Python 语言实现,由Paramiko和PyYAML两个关键模块构建。
  • Ansible 集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点。
    • 实现了批量系统配置、批量程序部署、批量运行命令等功能(比如:同时在100台服务器上执行修改密码操作。
    • 同时在200台服务器上安装nginx服务,并在安装后启动它们;将某个文件一次性拷贝到300台服务器上)。

Ansible 具有以下特点:

  • 部署简单,只需要在主控端部署 Ansible 环境,被控端无需做任何操作。
  • 模块化设计,调用特定的模块来完成特定任务,本身是核心组件,短小精悍。
  • 默认使用 SSH(Secure SHell)协议对设备进行管理。
  • 支持非root用户管理操作,支持sudo,权限管理分级明确。
  • 主从集中化管理。
  • 配置简单、功能强大、扩展性强。
  • 支持 API 及自定义模块,可通过 Python 轻松扩展。
  • 通过 Playbooks 来定制强大的配置、状态管理。
  • 对云计算平台、大数据都有很好的支持。
  • 提供一个功能强大、操作性强的 Web 管理界面和 REST API 接口——AWX 平台。
  • 幂等性:一种操作重复多次结果相同。

二、Ansible 架构

Ansible 是基于模块工作的,本身没有批量部署的能力。真正实现批量部署的是 Ansible 所运行的模块,Ansible 只是提供一种框架。

Ansible:              Ansible自身核心模块;
Connection Plugins:   连接插件,负责和被管理主机通信(通过SSH或者ZeroMQ连接到主机);
Host Inventory:       主机库,定义被管理的主机列表;
Modules:              各种模块,包括核心模块、自定义模块。Ansible 管理主机之前,先调用 Core Modules 中的模块,然后指明管理 Host Inventory 中的主机,就可以完成管理主机。如果核心模块不足以完成某种功能,可以添加自定义模块,此模块支持任何语言编写。
Plugins:              完成模块功能的补充,借助于插件完成记录日志、发送邮件等功能;
Playbooks:            定义 Ansible 任务的配置文件,可以将多个任务定义在一个 Playbook 中,由 Ansible 自动执行。Playbook 执行支持多个任务,可以由管理主机运行多个任务,同时对多台被管理主机进行管理。

在这里插入图片描述

三、Ansible 执行模式及执行过程

Ansible 系统由控制主机对被管理节点的操作分为两类,即 ad-hoc 和 playbook:

1)ad-hoc:使用单个模块,支持批量执行单条命令。
(2)playbook:Ansible 主要管理方式,功能强大。通过多个task集合完成一类功能,实现如Web服务的安装部署
              数据库服务的批量备份等。可简单把playbook理解成组合多条 ad-hoc 操作的配置文件。

Ansible 执行过程如下图所示:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值