一、基础介绍

ansible基础介绍可参考:http://www.linuxidc.com/Linux/2017-12/149671.htm

puppet基础介绍可参考:http://www.linuxidc.com/Linux/2017-12/149672.htm

saltstack基础介绍可参考:http://www.linuxidc.com/Linux/2017-12/149675.htm

二、技术特性比较

名称
Puppet
SaltStack
Ansible
开发语言 Ruby Python Python
客户端
二次开发 不支持 支持 支持
通信验证
同学加密 标准SSL协议 AES加密 OpenSSH
平台支持 AIX,BSD,HP-UX,Linux,Mac OS X,Solaris,Windows BSD,Linux,Mac OS X,Solaris,Windows AIX,BSD,HP-UX,Linux,Mac OS X,Solaris
配置文件格式 Ruby语法格式 YAML YAML
Web UI 提供 提供 提供(商业版本)
命令执行 不支持(配置模块可实现) 支持 支持

三、优缺点对比

名称
优势
劣势
成本
Puppet
  • 模块由Ruby或Ruby子集编写

  • push命令可以即可触发变更

  • Web界面生成处理报表、资源清单、实时节点管理

  • 代理运行端进行详细、深入的报告和对节点进行配置

  • 相对其他工具较复杂,需学习Puppet的DSL或Ruby

  • 安装过程缺少错误校验和产生错误报表

  • 开源软件免费

  • SaltStack企业版每年内个节点花费约¥100

Saltstack
  • 状态文件可用简单YAML配置模块或复杂的Python/PyDSL脚本

  • 与客户端可以基于SSH或在被管节点安装代理

  • Web界面可看到运行的工作、minion状态、事件日志、可在客户端执行命令

  • 扩展能力极强

  • Web界面像毒药竞争产品不稳定与相对不完善

  • 缺乏生成深度报告的能力

  • 开源软件免费

  • SaltStack企业版每年内个节点花费约¥150,随着数量增加相应的会有折扣

Ansible
  • 模块可以用任何语言开发

  • 备管节点不需要安装代理软件

  • 有Web管理界面、可配置用户、组、资源清单和执行Playbook

  • 安装、运行极其简单

  • 对备管理节点为Windows有待加强

  • Web管理界面是内置的Ansible的一部分

  • 需导入资源清单

  • 执行效率较低

  • 开源版本免费

  • Ansible Tower小于10台被管理节点免费

  • 超过10太后没年每台需支付¥100~$250的支持服务费用

四、推荐场景

4.1 Puppet

  Puppet也许是四款工具中最深入人心的。就可用操作、模块和用户界面而言,它是最全面的。Puppet呈现了数据中心协调的全貌,几乎涵盖每一个运行系统,为各大操作系统提供了深入的工具。初始设置比较简单,只需要在需要加以管理的每个系统上安装主服务器和客户端代理软件。

  命令行接口(CLI)简单直观,允许通过puppet命令下载和安装模块。然后,需要对配置文件进行更改,好让模块适合所需的任务;应接到指令的客户端与主服务器联系时,会更改配置文件,或者客户端通过立即触发更改配置文件的推送(push)来进行更改。

  还有一些模块可以提供和配置云服务器实例和虚拟服务器实例。所有模块和配置都使用基于Ruby的Puppet专属语言或者Ruby本身构建而成,因而除了系统管理技能外,还需要编程专业知识。

  Puppet企业版拥有最全面的Web用户界面,允许使用主服务器上的预制模块和菜谱(cookbook),实时控制被管理的节点。Web用户界面很适合用于管理,但是不允许对模块进行诸多配置。报告工具非常完善,提供了详细信息,以便了解代理软件运行如何、已做出什么样的变更。

4.2 Ansible

  Ansible极其类似Salt,而不太类似Puppet或Chef。Ansible关注的重点是力求精简和快速,而且不需要在节点上安装代理软件。因此,Ansible通过SSH执行所有功能。Ansible基于Python;相比之下,Puppet和Chef基于Ruby。

  Ansible可以通过Git软件库克隆,安装到Ansible主服务器上。安装完毕后,需要管理的节点被添加到Ansible配置环境,SSH授权密钥被附加到每个节点上,这与运行Ansible的用户有关。一旦完成了这步,Ansible主服务器可以通过SSH与节点进行通信,执行所有必要的任务。为了与默认情况下不允许根SSH访问的操作系统或发行版协同运行,Ansible接受sudo登录信息,以便在那些系统上以根用户的身份运行命令。

  Ansible可以使用Paramiko(基于SSH2协议的Python实现)或标准SSH用于通信,不过还有一种加速模式,允许更快速、更大规模的通信。

  针对确保服务在运行,或者触发更新和重新启动之类的简单任务,Ansible可以从命令行来运行,不需要使用配置文件。至于比较复杂的任务,Ansible配置通过名为Playbook的配置文件中的YAML语法来加以处理。Playbook还可以使用模板来扩展其功能。

  Ansible有一大批模块,可用于管理各种系统以及亚马逊弹性计算云(EC2)和OpenStack等云计算基础设施。可以用几乎任何一种语言来编写自定义Ansible模块,只要模块输出是有效的JSON。

  Ansible的Web用户界面以AnsibleWorks AWX的形式出现,但AWX与CLI并不直接联系在一起。这意味着,除非进行了同步过程,否则CLI里面的配置元素不会出现在Web用户界面中。你可以使用那个内置的同步工具,让两者保持一致,但需要按照预定计划运行同步工具。

4.3 SaltStack

  Salt类似Ansible,因为它也是基于CLI的工具,采用了推送方法实现客户端通信。它可以通过Git或通过程序包管理系统安装到主服务器和客户端上。客户端会向主服务器提出请求,请求在主服务器上得到接受后,就可以控制该客户端了。

  Salt可以通过普通的SSH与客户端进行通信,但如果使用名为minion的客户端代理软件,可以大大增强可扩展性。此外,Salt含有一个异步文件服务器,可以为客户端加快文件服务速度,这完全是Salt注重高扩展性的一个体现。

  与Ansible一样,你可以直接通过CLI,向客户端发出命令,比如启动服务或安装程序包;你也可以使用名为state的YAML配置文件,处理比较复杂的任务。还有“pillar”,这些是放在集中地方的数据集,YAML配置文件可以在运行期间访问它们。

  你可以直接通过CLI,向客户端请求配置信息,比如内核版本或网络接口方面的详细信息。只要使用名为“grain”的库存元素,就可以描述客户端;这样一来,管理员可以轻松向某一种类型的服务器发出命令,不需要依赖已配置群组。比如说,只要使用一个CLI命令,你就可以向运行某个内核版本的每个客户端发送命令。

  与Puppet、Chef和Ansible一样,Salt也提供了大量的模块,以处理特定的软件、操作系统和云服务。自定义模块可以用Python或PyDSL来编写。除了Unix管理外,Salt的确提供Windows管理功能,但它还是更擅长管理Unix和Linux系统。

  Salt的Web用户界面Halite非常新,功能不如其他系统的Web用户界面来得全面。它提供了事件日志和客户端状态的视图,能够在客户端上运行命令,但除此之外乏善可陈。

  Salt的较大优点在于可扩展性和弹性。你可以有多个级别的主服务器。上游主服务器可以控制下游主服务器及其客户端。另一个优点在于对等系统,让客户端可以向主服务器提出问题,然后主服务器从其他服务器得到答案,提供全面信息。如果需要在实时数据库中查询数据,以便完成客户端的配置,这个优点就很方便。

ansible puppet saltstack三款自动化运维工具的对比的更多相关文章

  1. Ansible自动化运维工具使用

    概述本文描述自动化运维工具 Ansible 的安装及基础使用方法,包含: Centos 下的安装主机配置Ad-Hoc command(命令行执行)Playbook (任务剧本)Ansible 和 Sa ...

  2. 自动化运维工具Ansible详细部署 (转载)

    自动化运维工具Ansible详细部署 标签:ansible 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sofar.blog. ...

  3. 企业级自动化运维工具应用实战-ansible

    背景 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出多套环境可以共开发和测试人员做测试,运 ...

  4. 自动化运维工具Ansible的部署步骤详解

    本文来源于http://sofar.blog.51cto.com/353572/1579894,主要是看到这样一篇好文章,想留下来供各位同僚一起分享. 一.基础介绍 ================= ...

  5. 自动化运维工具-Ansible之1-基础

    自动化运维工具-Ansible之1-基础 目录 自动化运维工具-Ansible之1-基础 Ansible 基本概述 定义 特点 架构 工作原理 任务执行模式 命令执行过程 Ansible 安装 Ans ...

  6. 自动化运维工具之ansible

    自动化运维工具之ansible   一,ansible简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fab ...

  7. 项目实战10.1—企业级自动化运维工具应用实战-ansible

    实战环境: 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出多套环境可以共开发和测试人员做测 ...

  8. 自动化运维工具Ansible的简单使用

    一 基础使用 1. 简介ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置. ...

  9. 企业级自动化运维工具应用实战ansible

    公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出多套环境可以共开发和测试人员做测试,运维老大 ...

随机推荐

  1. Q3狂揽3亿美元净利润的特斯拉会让国内电动汽车厂商喜极而泣吗?

    作为电动汽车行业的标杆,特斯拉无疑是国内电动汽车厂商发展进程中重要的参考对象.而前段时间特斯拉身上出现的产能受阻.私有化风波.马斯克卸任董事长一职等事件,着实让国产电动汽车厂商惊出一身冷汗.毕竟如果特 ...

  2. Hibernate--(二)增删改查

    1.增删改查: public class Test { public static void main(String[] args) { SessionFactory sf = new Configu ...

  3. 留学Essay写作做到精准表达很关键

    很多留学生在essay写作中可以迅速想到合理的中文论点.可是,写出来的英文论点却漏洞百出,不忍直视.在essay写作中我们要如何精准地用英文写出自己内心的独白呢?除了咨询老师,靠自己一样能做到! 1引 ...

  4. 查看两个集合中有没有相同的元素的方法。Collections disjoint

    在做项目的时候遇到一个种情况,就是要比较两个集合中是否有相同的元素,经过查找资料,找到了Collections类下的disjoint方法下面做的一个小例子: import java.util.Coll ...

  5. map构造同时初始化

    Map<String, Object> mtest =  new HashMap<String, Object>(){{put("test","M ...

  6. 51nod 1305:Pairwise Sum and Divide

    1305 Pairwise Sum and Divide 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 有这样一段 ...

  7. MFC下的网络编程(1)CAsyncSocket进行无连接(UDP)通信

    服务器端发送数据给客户端 先看服务器端: CAsyncSocket m_sockSend;                       //声明一个Socket对象 点击发送数据后,执行下面这些动作 ...

  8. 新iPhone要推出双卡双待这事是真的吗?

    自2007年发布以来,iPhone似乎一直都是"异类"--以自己独特的方式走着一条引领智能手机前进的路!如,在当年遍地按键键盘的年代,iPhone以触摸屏的奇葩姿态引领了新潮流:刚 ...

  9. docker入门2---docker的初体验

    Tomxin7 Simple, Interesting | 简单,有趣 第一个Docker镜像? 尝试运行docker自带的镜像"hello-world",了解docker镜像的下 ...

  10. pycharm2018专业版

    https://blog.csdn.net/moshanghuali/article/details/94396935 1 下载Pycharm专业版2018.3.1许多人直接在官网直接下载,默认的都是 ...