您当前的位置:首页 > 电脑百科 > 电脑知识

如何选自动化部署工具?Saltstack VS Ansible

时间:2021-03-04 09:55:13  来源:  作者:

在上一文中,我介绍了Ansible,那么不得不介绍Saltstack(以下简称Salt)了。在众多自动化部署工具中做选择题的时候,相信很多运维都会纠结,到底选哪一个比较好?现在我就来说说,希望看完本文,大家心中会有答案。如果没有,请再看一遍,哈哈哈

术语

Salt和Ansible最初都是作为执行引擎构建的。也就是说,如果需要,它们允许在一个或多个远程系统上并行执行命令。

Ansible支持在多台计算机上执行任意命令行命令。它还支持执行模块。一个Ansible模块基本上是写在一定Ansible友好的方式一个Python模块。大多数标准的Ansible模块都是同等的。这意味着你告诉他们你希望系统进入的状态,并且模块尝试使系统看起来像这样。

Ansible有Playbook的概念 。Playbook是一个文件,为一组主机定义了一系列模块执行。Playbook可以改变执行主机模块的方式。这样就可以协调多台计算机,例如在升级应用程序之前将它们从负载平衡器中取出。

Salt有两种类型的模块;execution(执行)模块和 state(状态)模块。执行模块是简单地执行某些操作的模块,它可以是命令行执行或下载文件。状态模块更像Ansible模块,其中参数定义状态,然后模块尝试实现该结束状态。通常,状态模块在大多数工作中都使用执行模块。

状态模块是使用state执行模块执行的。状态模块还支持在称为SLS文件的文件中定义状态。在top.sls文件中定义了哪些状态适用于哪些主机 。

Playbook和SLS文件(通常)都是用YAML编写的。

作为一个旁注,我想指出一个远程执行引擎对于诸如在多台机器上启动特定操作之类的任务非常有用。

结构

如何选自动化部署工具?Saltstack VS Ansible

 

Salt围绕一个Salt Master和多个启动时连接到该主节点的Salt Minions构建。通常,命令是在主命令行上发出的。然后,Master将那些命令分派给Minions。最初,Minions发起一个由加密密钥交换组成的握手,之后它们具有持久的加密TCP连接。因此可以快速到达Minions。还缓存各种数据以加快执行速度。支持ZeroMQ库进行通信。

Salt还支持使用SSH而不是使用Salt SSH的ZeroMQ 。但是请注意,它是Alpha软件(我还没有尝试过)

如何选自动化部署工具?Saltstack VS Ansible

 

Ansible是无主从概念的,它使用SSH作为其主要通信层。这意味着速度较慢,但也因为无主从,可能会使运行安装程序和测试Ansible Playbook更加容易。有人说它也更安全,因为它不需要其他服务器应用程序。这在下方的“安全性”可以详细了解该内容。

Ansible也支持ZeroMQ版本,但需要初始SSH连接才能进行设置。我尝试了一下,说实话,我并没有看到有很明显的提速。我想可能是在大型的Playbook和有更多的主机才可以看到明显效果吧。

要列举机器,建议你使用一个Ansible Inventory 文件,该Inventory文件基本上包含按组分组的主机列表,还具有添加到组或单个主机的属性。你可以有多个库存文件,例如,一个用于登台,一个用于生产。结构简单清晰。

社区

Ansible:该项目的其余部分似乎不是社区的努力,而是迈克尔·德哈恩(Michael DeHaan)的单人秀。好消息是所有问题都会得到相应的回应。

迄今为止,Salt已被证明是一个更受欢迎的社区。问题可能要花大约4天的时间才能得到答复,但似乎大多数问题最终也都会得到跟进。

我的明确印象是,Salt在受欢迎和协作方面拥有更成熟的社区。

速度

尽管你可能认为只有几台服务器时速度并不重要,但我认为你是错的。能够快速迭代始终很重要。启动缓慢会降低你的速度。

Ansible始终使用SSH发起连接。太慢了,它的ZeroMQ实现(如前所述)确实有帮助,但是初始化仍然很慢。

Salt默认使用ZeroMQ,它是很快的。如前所述,Salt可以缓存文件以更快地重新执行。

编排

Ansible和Salt都支持编排。我想说编排规则通常更容易获得Ansible的概述。基本上,一个Playbook分为几组任务,每个组与一组主机(或一个主机组)匹配。每个组按顺序按时间顺序执行。任务的执行顺序也是如此。

Salt支持 事件和 事件的监控。这意味着Salt执行可以触发另一台计算机上的事件。Salt的执行引擎还可以实现诸如监控之类的功能,而未来的发展将非常有趣。

Ansible因其简单性而在这里获胜。Salt之所以能胜任,是因为它能够对群集变化做出持续的反应。

Salt和Ansible都还支持在服务器窗口上执行任务。这对于确保服务始终可用非常有用。

安全

Ansible使用SSH进行传输。SSH是经过测试的协议。只要正确配置了SSH服务器,我相信大多数人会认为SSH客户端是安全的。

Ansible还可以轻松地将多个非root用户连接到单个主机。如果你对进程运行非常挑剔, root则应评估Ansible。也就是说,Ansible支持使用 sudo来执行其模块。

Salt使用AES实现和密钥处理,需要安装Minions。它为此使用了 PyCrypto软件包。安全性是相当容易维护。

还需要注意的重要一点是,root默认情况下,Salt运行其Master和Minions 。这可以更改,但是显然如果你不是root用户,则很难安装Debian软件包等。我强烈建议,对于主服务器,可以将其配置为允许该salt命令为非root用户。

可审核性

在谈论安全性时,我也认为可审核性很重要。在这里,Salt大赢家。Salt执行的每次执行都会在主服务器上保存X天。这使调试变得很容易,而且还可以查看是否发生了异常的事情。

部署方式

Ansible在这里绝对容易。无需部署。当然,Salt支持SSH,但文档主要采用ZeroMQ。但是,SSH仍然很慢...

设置Minions的一件好事是它们是连接到主节点的Minions。这样可以快速轻松地引导大量新机器。

Salt 引导脚本 对于引导非常有用,并且轻而易举。它处理许多不同的分布,并且有据可查。

学习曲线

Ansible在这里赢了。更容易上手和理解。主要是因为设置几个环境变量并开始执行你的Playbook以外,不需要做其他事情。

Salt可以在无主模式下运行。这使得它更容易启动和运行。但是,出于生产(和稳定性)的考虑,我建议启动并运行一个实际的Master。

升级

升级Salt取决于安装方式。对于基于Debian的发行版,有一个apt存储最新Debian软件包的存储库。所以升级很简单apt-get upgrade。对于Ubuntu,有一个PPA。两个存储库均得到积极维护。

升级Ansible更加简单。你只需执行 git fetch && git checkout <tag>而已。

文献资料

从文档开始,这两个项目都具有启动和运行,开发模块和配置设置所需的所有信息。Ansible历史上比Salt拥有更好的文档结构。也就是说,最近在结构化Salt文档方面付出了巨大的努力。

结论

Ansible

  1. 优点
  • Ansible无代理部署和通信
  • CLI支持几乎所有编程语言
  • 使用在linux发行版中无所不在的Python
  • 使用SSH / SSH2的出色安全性
  • 附加的塔式仪表板允许对节点/资源进行可视化管理(在商业版本中可用)
  1. 缺点
  • 有时容易出现性能问题
  • 缺乏内省(即查看Playbook变量值)

Salt

  1. 优点
  • 由于具有多主机功能,因此可快速扩展,非常有弹性且高效
  • 使用Minions比Ansible提供更多的选择和灵活性
  • 尚无GUI(目前正在开发中)
  1. 缺点
  • 强迫用户学习Python或PyDSL
  • 未开发的GUI
  • 小型部署不如无代理通信那样高效

对我而言,Ansible是对自动化服务器配置和部署的出色介绍。它很容易启动和运行,并且具有出色的文档。

展望未来,Salt的可扩展性,速度和体系结构都不错。对于云部署,我发现Salt架构更合适。将来我会毫不犹豫地使用Salt。

综上所述,你应该在做出决定之前先对两个项目进行调整。他们的设置和测试相当快。至此,希望你心中已有答案。



Tags:自动化部署   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
作者:maomincoding 来源:前端历劫之路 前言说起文档,我们可能会第一时间会想起很多技术文档,比如Vue.js文档、React.js文档、TypeScript文档,它们都有相似的布局和样式。那么,作为...【详细内容】
2021-12-23  Tags: 自动化部署  点击:(8)  评论:(0)  加入收藏
第一步、部署环境1、安装nodeJs1、下载nodewget https://nodejs.org/dist/v16.8.0/node-v16.8.0-linux-x64.tar.xz2、解压压缩包xz -d node-v8.11.2-linux-x64.tar.xztar -x...【详细内容】
2021-09-06  Tags: 自动化部署  点击:(70)  评论:(0)  加入收藏
在上一文中,我介绍了Ansible,那么不得不介绍Saltstack(以下简称Salt)了。在众多自动化部署工具中做选择题的时候,相信很多运维都会纠结,到底选哪一个比较好?现在我就来说说,希望看...【详细内容】
2021-03-04  Tags: 自动化部署  点击:(127)  评论:(0)  加入收藏
企业电话系统,或者IPPBX如果需要配置上百个SIP 分机的话,如果没有一个自动部署的解决方案的话,现场工程师会非常麻烦。一个一个地配置是完全不可能的。特别是在云平台呼叫中,SIP...【详细内容】
2020-12-25  Tags: 自动化部署  点击:(134)  评论:(0)  加入收藏
Jenkins是一款开源的CI&CD软件, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。JenkinsJenkins基于Java环境,可以部署在windows/Mac OS/linux上,通过其网页...【详细内容】
2020-11-06  Tags: 自动化部署  点击:(610)  评论:(0)  加入收藏
镜像准备docker run -u root -d -p 8024:8080 -p 50000:50000 \ -v /data/jenkinsData:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ -...【详细内容】
2020-07-27  Tags: 自动化部署  点击:(148)  评论:(0)  加入收藏
问题背景公司初创技术团队,没有任何基础设施的情况下,需要搭建一系列code管理以及自动化部署等工具&hellip;.所以引发了下面一系列的部署过程,历时两天,中间也是碰到各种问题,但...【详细内容】
2020-03-14  Tags: 自动化部署  点击:(106)  评论:(0)  加入收藏
在目标机器创建deploy用户(以deploy用户为例子)添加用户并创建密码/usr/sbin/groupadd deploy/usr/sbin/useradd -g deploy -s /bin/bash deploypasswd deploy输入两次密码,...【详细内容】
2020-01-06  Tags: 自动化部署  点击:(83)  评论:(0)  加入收藏
▌简易百科推荐
回答这个问题前首先要了解一度电的定义一度电= 1000W&middot;h ,是一个能量单位,一个功率为1000w的设备持续运作一小时就会消耗1度电。所以台式机多少时间一度电完全取决于台...【详细内容】
2021-12-20  数码榜    Tags:台式电脑   点击:(5)  评论:(0)  加入收藏
你是不是很多时候都会紧急冲向电源插座以拯救笔记本电脑的电量?很多时候由于附近没有方便的插座,一是会误事,二是会导致尴尬。幸运的是,现代笔记本电脑比前辈高效得多。如今,即...【详细内容】
2021-12-16  趣玩公社    Tags:电池   点击:(17)  评论:(0)  加入收藏
电脑在我们生活中的重要性不言而喻。如何保证自己的电脑流畅好用,对于很多用户来说都非常重要。作为一个理科男和IT从业者,对于自己的电脑还是非常在意的,会定期的进行整理,保持...【详细内容】
2021-12-09  小伊评科技    Tags:电脑   点击:(13)  评论:(0)  加入收藏
大家好,我是良许。不管我们使用什么操作系统,无论是 Windows、macOS 还是 Linux ,里面都安装了许多软件、驱动程序和固件。但是,这三者概念有区别呢?我在朋友圈做了个小调查,发现...【详细内容】
2021-11-30  良许Linux    Tags:固件   点击:(10)  评论:(0)  加入收藏
澎湃问吧世界著名密码史学家戴维&middot;卡恩曾说:“人类使用密码的历史几乎与使用文字的时间一样长”,这意味着人类密码领域的较量已近五千年。提及“密码”一词,大多数人会想...【详细内容】
2021-11-24    澎湃新闻  Tags:密码   点击:(16)  评论:(0)  加入收藏
由于去中心化域名和账户体系可以承载应用、网站和用户身份,因此有理由相信,这是 Web3 世界中不可或缺的一环。撰文:潘致雄如果回忆一下初次进行的加密货币转账时的体验,特别是在...【详细内容】
2021-11-03  链闻ChainNews    Tags:ENS   点击:(26)  评论:(0)  加入收藏
 文件系统(File System)是计算机系统必不可少的组成部分,可以说除了部分结构简单的单片机系统之外,文件系统是支撑每一个计算机系统运行的最重要的支撑,无论是操作系统、应用程...【详细内容】
2021-11-01  欧工玩转嵌入式  CSDN  Tags:FAT32   点击:(30)  评论:(0)  加入收藏
SDS 2.0时代进化达尔文的《进化论》认为,地球上现存的所有生物都是自然选择的结果,生物只有适应环境的变化,才能得到生存和进化。回望到企业存储,一个常做常新的行业,从上古结绳...【详细内容】
2021-10-28  ExponTech   企鹅号  Tags:SDS   点击:(35)  评论:(0)  加入收藏
在昨天的微信《远程办公危机四伏,到底该pick谁给你保驾护航?》中介绍了远程员工应该具备的四大安全工具,今天继续分享干货:05 双因子令牌在理想的情况下,每个人都会对所有的关键...【详细内容】
2021-10-26    计算机世界  Tags:远程办公   点击:(32)  评论:(0)  加入收藏
今天几乎所有的数字显示设备都基于某种类型的 RGB(红、绿、蓝)颜色模型。RGB 是表示人类可以看到的大多数颜色的最有效方式(有一些颜色不能很好地产生,但这是另一个讨论)。相机...【详细内容】
2021-10-09  懒懒散散的程序员    Tags:RGB   点击:(49)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条