• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Ansible简介详细特性+优点+设计理念+应用领域+系统架构+工作原理+任务执行流程

武飞扬头像
Hanhan|
帮助1

前言

传统的运维与自动化运维

传统运维带来的坑
运维工作是比较繁琐的,尤其是新系统上线的场景,一切都是从零开始。包括虚机的创建,主机名的修改,系统的初始化等等,在机器不多的情况下人工还能应付的过来,如果有上百台机器呢?最初也是用堆人的方法来做的。但这样的方式出错率高,而且有时还会有遗漏。只能通过相互检查的方式来验证,但这样就会花费更多的时间,相应的时间/人工成本也会上升。
人工的方式因个人部署习惯千差万别,导致一些项目难以维护。

运维自动化
没有专门的工具为我们做这些事情,使用脚本语言(Python)
逐渐有了运维自动化的一些工具,比如Fabric、Puppet、Chef SaltStack、Ansible等自动化运维平台。


目录

前言

传统的运维与自动化运维

Ansible介绍

1、Ansible简介

 1、Ansible特性

2、Ansible优点

3、Ansible设计理念

4、 Ansible 应用领域 

5、Ansible系统架构

6、Ansible工作原理

7、Ansible任务执行流程


Ansible介绍

1、Ansible简介

        ansible是新出现的自动化运维工具,基于Python开发,集合了众多老牌运维工具(puppet、cfengine chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
        ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块, ansible只是提供一种框架。主要包括:

  1. 连接插件connection plugins:负责和被管控端实现通信;
  2. host  inventory:指定操作的主机,是一个配置文件里面定义管控的主机; 
  3. 各种模块核心模块、command模块、自定义模块;
  4. 借助于插件完成记录日志邮件等功能;
  5. playbook:剧本执行多个任务时,可以让被管控端一次性运行多个任务。

 1、Ansible特性

  1. no agents:不需要在被管控主机上安装任何客户端;
  2.  no server:无服务器端,使用时直接运行命令即可;
  3.  modules in anylanguages:基于模块工作,可使用任意语言开发模块;
  4. yaml,notcode:使用yaml语言定制剧本playbook;
  5.  ssh by default:基于SSH工作;
  6.  strong multi-tier solution:可实现多级指挥。

2、Ansible优点

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

3、Ansible设计理念

  1. 安装部署过程特别简单, 学习曲线很平坦。
  2. 管理主机便捷, 支持多台主机并行管理。
  3. 避免在被管理主机上安装客户代理, 打开额外端口,采用无代理方式,只是利用现有的 SSH后台进程。
  4. 用于描述基础架构的语言无论对机器还是对人都大是友好的。
  5. 关注安全,很容易对执行的内容进行审计、评估、重写。
  6. 能够立即管理远程被管理主机, 不需要预先安装任何软件。
  7. 不仅仅支持Python,可运行使用任何动态语言开发模块。
  8. 非 root 账户也可以使用。
  9. 成为最简单、易用的 IT自动化系统

4、 Ansible 应用领域 

Ansible的编排引擎可以出色地完成配置管理、流程控制 、资源部署等多方面工作。

1.配置管理

2.服务即时开通

 这个领域的工具主要是在数据中心 、虚拟化环境、云计算中快速开通新的主机。

3.应用部署

这个领域的工具重点关注如何尽可能地零停机部署应用。

4.流程编排

流程编排主要是进行部署时候如何保证基础架构中的各种组件协调一致。

5、Ansible系统架构

学新通

1.核心引擎即Ansible

2.核心模块:(Core Modules):这些都是Ansible自带的模块。

3.自定义模块(Custom  Modules):如果核心模块不足以完成某种功能,可以添加自定义模块。

4.插件(Plugins):完成模块功能的补充,借助插件完成记录日志,邮件的等功能。

5.剧本(Playbooks):定义Ansible任务的配置文件,可以将多个任务定义在一个剧本中,有Ansible自动执行,剧本支持多个任务,可以由控制主机运行多个位置,同时对多台远程主机进行管理。

6.Playbook是Ansible的配置、部署和编排语言,可以描述一个你想要的运程系统执行策略。或一组步骤的一般过程。

7.连接插件(Connectior plugins):Ansible基于连接插件连接到各个主机上,负责和被管节点实现通信。

8.主机清单(host inventory):定义Ansible管理的主机策略,默认是在Ansible的hosts配置文件中定义被管节点。

6、Ansible工作原理

学新通

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

7、Ansible任务执行流程

学新通

总结

  • 自动化是减少人为错误并快速确保IT基础架构处于一致且正确的状态的关键工具。
  • Ansible是一种开源自动化平台,能够适应许多不同的工作流和环境。
  • Ansible可用于管理许多不同类型的系统,包括运行Linux、MicrosoftWindows或UNIX的服务器以及网络设备。
  • AnsiblePlaybook是人类可读的文本文件,用于描述IT基础架构的所需状态。
  • Ansible围绕一种无代理架构构建,在控制节点上安装Ansible,且客户端不需要任何特殊的代理软件。
  • Ansible使用SSH等标准协议连接受管主机,并在受管主机上运行代码或命令来确保它们处于 Ansible指定的状态。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhggkbee
系列文章
更多 icon
同类精品
更多 icon
继续加载