首页 > 代码库 > 运维工具ansible理论部分

运维工具ansible理论部分

1、运维工作介绍

运维工作的全部流程:

系统安装(物理机、虚拟机)--> 程序包安装、配置、服务启动 --> 批量操作 --> 程序发布  --> 监控

    随着一些大公司的IT系统架构越来越复杂,服务器数量越来越多,标准化和自动化已经是运维工作的基本要素。

自动化运维经历了4个阶段:人工,这个阶段基本上是全部需要到机器上一步步操作;脚本,使用计划任务完成一些重复性工作;工具,这个阶段一个人可以管理大量的机器,常见的工具:puppet,saltstack,ansible;平台化,这时运维人员已经深入研究操作系统的很多组件的代码并且进行优化,开发运维工具实现流程化标准化。

运维工具的介绍:

技术分享

运维工具的分类:

    agent: 需要植入代理程序采集响应的信息

    代表性运维工具:puppet, func

    agentless: 不需要植入代理程序采集响应的信息

    代表性运维工具:ansible, fabric

    ssh:基于ssh协议

    代表性运维工具:ansible

正因为ansible具有agentless和ssh特性,所以ansible是轻量型的运维工具。而且相对于puppet和saltstack运维工具,ansible在部署和使用上更加简单,更容易入门。

2、ansible简介

ansible是一个轻量级的运维管理工具 , 基于Python研发 。可实现对系统的批量管理配置、程序的批量部署、批量的运行命令等功能。 仅需在任意管理主机安装 ansible 程序即可实现批量管理被管控主机且被管控的主机无需客户端。 我们在安装ansible时一定要依托epel源来安装(推荐阿里云),并且在线用yum安装。它基于python开发所以得解决ansible对python编程的各种依赖。

3、ansible特性

模块化,调用特定的模块,完成特定的任务;

基于Python语言实现,由Paramiko、PyYAML和Jinja2三个关键模块;

部署简单,agentless;

主从模式

支持自定义模块

支持Playbook

4、ansible的基本架构

技术分享

对上图组件的说明:

(1)Host Inventory:

Inventory是被管理主机的清单,由/etc/ansible/hosts中定义,可以实IP或主机名

(2)Playbooks:

Playbooks是任务集,类似于脚本,由ansible调度大量主机执行其中的任务,调用直接使用ansible-playbook命令

(3)Modules:

MODULES是Ansible执行命令的功能模块,多数为内置的核心模块,也可自定义,使用ansible-glaxy加载别人定义的模块

(4)Plugins:

API 和PLUGINS是第三方提供的管理接口和模块功能的补充,基本不会使用,使用需要一定的技术门槛

Users直接和ansible交互使用ansible命令

本文出自 “汪立明” 博客,请务必保留此出处http://afterdawn.blog.51cto.com/7503144/1892308

运维工具ansible理论部分