ansible-介绍

  1. 常用自动化运维工具
    • CFengine
    • Chef
    • Puppet
      基于Ruby开发,采用C/S架构,扩展性强,基于SSL认证
    • SaltStack
      基于python开发,采用C/S架构,相对于puppet更轻量级,配置语法采用YMAL,是的配置脚本更为简单
    • Ansible
      基于python开发,分布式,无需客户端,可以通过ssh互信管理,轻量级,配置语言采用YMAL
  2. 为什么选择ansible
    • 相对于puppet和saltstack、ansible无需客户端,更轻量级
    • ansible甚至都不用启动服务,仅仅只是一个工具,可以很轻松的实现分布式扩展
    • 更强的远程命令执行操作
    • 不输于puppet和saltstack的其他功能
  3. ansible基本结构

4.ansible基本组成

  • 核心:ansible
  • 核心模块(Core Modules):这些都是ansible自带的模块
  • 扩展模块(Custom Modules):如果核心模块不足以完成某种功能,可以添加扩展模块
  • 插件(Plugins):完成模块功能的补充
  • 剧本(Playbooks):ansible的任务配置文件,将多个任务定义在剧本中,由ansible自动执行
  • 连接插件(Connectior Plugins):ansible基于连接插件连接到各个主机上,虽然ansible是使用ssh连接到各个主机的,但是它还支持其他的连接方法,所以需要有连接插件
  • 主机群(Host Inventory):定义ansible管理的主机

5.ansible工作原理

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