salt教程1-理解saltstack
https://docs.saltstack.com/en/getstarted/system/index.html
1 基本介绍
通过观察它的实际运行,你可以大致理解salt如何工作。这意味着,在控制台上显示的数据之外,有很多东西是很难注意到的。这个部分的教程解释了salt如何工作,salt的子系统,salt的模块化架构使用,扩展salt以管理整个基础架构。
我们进入salt特定的组件之前,理解一点salt如何处理架构管理是很好的。
REAL-TIME COMMUNICATION实时通信
所有salt minion同时接受命令。这意味着升级10个或10000个系统,耗费的时间是十分相近的。数千系统的查询可以几秒之内完成。salt获取信息的方式是实时查询,而不是依赖于数据库。
NO FREELOADERS!没有空载
salt minions做自己的工作。来着salt master的通信是一个轻量级的指令,通常是:如果minion上有这些属性,使用这个命令和这个参数。当收到命令,salt minion决策是否和属性匹配。每个salt minion都把需要的所有命令存储在本地,所以命令可以被执行,并且结果很快返回到salt master。salt master不为minion做任何事。消息使用MessagePack进行高效序列化。在内部,salt使用Tornado 作为异步网络库。
SALT LOVES TO SCALE可扩展
salt为高性能和扩展性设计。salt的通信系统,使用ZeroMQ或原始TCP,在master和minion之间建立持久的数据管道,这是性能优势。并且salt使用前沿技术来处理多线程和并发。
NORMALIZE EVERYTHING规范化
规范化让salt可以跨平台管理。无论你使用什么系统,salt的命令和状态都一样。
返回的的结果也是一致的数据结构。
AUTOMATE EVERYTHING自动化
salt的事件驱动架构,不是只让你自动做系统配置初始化,还可以随意自动扩展,维护和执行持续管理。salt用户可以自动部署和维护复杂的分布式网络应用和数据库,自定义应用,文件爱你,账户,标准包,云资源等等。
2 插件
没有插件的讨论是不完整的。理解salt的插件化结构很必要。
salt的核心框架提供了一个高速的通信和事件总线。这套框架连接并验证所管理的系统,并为它们提供发送通知的方法。
在这个核心框架的顶层,salt的剩余特性,暴露为一组松耦合可插拔的子系统。
PLUGGABLE SUBSYSTEMS可插拔子系统
salt包含超过20个插件子系统,但是大部门用户只对直接管理系统的少部分插件感兴趣,下面的表格包含了最常见子系统的列表:
认证:运行一个job之前授权用户
文件服务器:分发文件
安全的数据存储:使用户定义的变量和另外的数据安全可用
状态代表:描述你的基础架构和系统配置
返回格式化:格式化job的结果为规范化的数据结构
结果缓存:发送job结果到 long-term存储
远程执行:运行各种任务,来安装软件,分发文件,等管理系统的操作
配置:配置目标系统,以达到预期状态
WHAT DOES IT MEAN TO BE “PLUGGABLE”?
salt没有为任何子系统定义一个内建的方式来执行任务,每个子系统都是将它的工作委托给插件。salt给每个系统提供了默认的插件,但是在大多数情况下更改插件就像更新一个配置文件一样简单。这种可插拔使得salt非常灵活。
为了说明,这个图表展示了几个常见的子系统,以及每个子系统最常见的插件。

这个图表只展示了少数可用的子系统和插件,但它可以让你对salt的大致体系有了解。
SUBSYSTEMS DURING A JOB RUN
job运行时,多个子系统会被调用以处理这个job。下面的图表展示了一个典型状态的运行job或远程执行job的子系统流程

PLUG-INS? IT SOUNDS LIKE YOU ARE TALKING ABOUT SALT MODULES!
在salt中,插件都是python模块,一般就叫做模块,或者子系统模块,比如认证模块,文件服务器模块等等。
每个salt模块是众多子系统中的一个插件,理解这个,就理解它们之间的关系。
在每个步骤中,子系统把工作委托给配置的插件。比如,在step7中的job returner可能是mysql、redis,或者根本没有配置。
在每个步骤,都有很多插件可以执行任务,从而导致数百种可能的Salt配置和工作流程。
FLEXIBILITY
这种灵活性使sal成为t非常强大、可自定义的工具,但也使得你在学习的时候不太容易得到标准答案。
回答几个常见问题:
- 如何开始salt的工作?可以从任意接口,比如python、rest api,命令行,或者salt内建的调度器。
- salt如何格式化结果?可以是yaml,json,plain text,python数据结构等等,也可以使用参数改变格式。
- salt用什么格式来声明配置?根据您的使用情况,从15种支持的格式中选择一种,您还可以选择模板语言。格式是基于每个文件指定的,因此您可以同时使用多种格式。
- 结果存储在哪里?您想要的任何地方,您有30个选择!
只有你自己知道自己的基础架构是怎么样的,在今天复杂的环境中,没有一个方案是绝对最优的,salt的灵活性需要你自己去整合。
SALT COMPONENTS
当你了解salt中关于插件的只是,希望你开始理解salt的每个组件实际上都是可插拔的子系统,有其对应的插件。像graiins,pilliar,runners,所有可插拔
salt教程1-理解saltstack的更多相关文章
- Windows 8实例教程系列 - 理解应用框架
原文:Windows 8实例教程系列 - 理解应用框架 Windows 操作系统之所以风靡世界,是因为其“易学易用”,从用户的角度出发,让数以万计的非IT人员使用计算机实现娱乐,工作等目的.Windo ...
- SaltStack入门篇(四)之深入理解SaltStack远程执行
1.目标 2.执行模块 3.返回 salt ‘*’ cmd.run ‘uptime’ 命令 目标 执行模块 执行模块参数 1.SlatStack远程执行–目标 执行目标:https://docs.sa ...
- Laravel 服务容器实例教程 —— 深入理解控制反转(IoC)和依赖注入(DI)
容器,字面上理解就是装东西的东西.常见的变量.对象属性等都可以算是容器.一个容器能够装什么,全部取决于你对该容器的定义.当然,有这样一种容器,它存放的不是文本.数值,而是对象.对象的描述(类.接口)或 ...
- Spring Boot2 系列教程(三)理解 Spring Boot 项目中的 parent
前面和大伙聊了 Spring Boot 项目的三种创建方式,这三种创建方式,无论是哪一种,创建成功后,pom.xml 坐标文件中都有如下一段引用: <parent> <groupId ...
- SpringBoot2.x入门教程:理解配置文件
前提 这篇文章是<SpringBoot2.x入门>专辑的第4篇文章,使用的SpringBoot版本为2.3.1.RELEASE,JDK版本为1.8. 主要介绍SpringBoot配置文件一 ...
- Guitar Pro教程之理解记谱法
前面的章节我们讲解了很多关于Guitar Pro'的功能使用,今天小编还是采用图文结合的方式为大家讲解它的理解记谱法,对于很多新人来说,在我们看谱之前,我们肯定要先熟悉他的一些功能如何使用以及一些关于 ...
- guitar pro系列教程(二十七):Guitar Pro教程之理解记谱法
前面的章节我们讲解了很多关于Guitar Pro'的功能使用,今天小编还是采用图文结合的方式为大家讲解它的理解记谱法,对于很多新人来说,在我们看谱之前,我们肯定要先熟悉他的一些功能如何使用以及一些关于 ...
- Spring Boot2 系列教程(四)理解Spring Boot 配置文件 application.properties
在 Spring Boot 中,配置文件有两种不同的格式,一个是 properties ,另一个是 yaml . 虽然 properties 文件比较常见,但是相对于 properties 而言,ya ...
- Spring Boot2 系列教程(七)理解自动化配置的原理
Spring Boot 中的自动化配置确实够吸引人,甚至有人说 Spring Boot 让 Java 又一次焕发了生机,这话虽然听着有点夸张,但是不可否认的是,曾经臃肿繁琐的 Spring 配置确实让 ...
随机推荐
- Mac 终端启动AVD模拟器
cd ~/Library/Android/sdk/tools ./emulator -list-avds // 列出av列表 Nexus_5X_API_26 ./emulator @Nexus_5X_ ...
- 0203 生成mysql的数据库的数据字典
原理 项目的数据库字典表是一个很重要的文档.通过此文档可以清晰的了解数据表结构及开发者的设计意图. 通常为了方便我都是直接在数据库中建表,然后通过工具导出数据字典. 在Mysql数据库中有一个info ...
- Codeforces Forethought Future Cup Elimination Round 选做
1146C Tree Diameter 题意 交互题.有一棵 \(n(n\le 100)\) 个点的树,你可以进行不超过 \(9\) 次询问,每次询问两个点集中两个不在同一点集的点的最大距离.求树的直 ...
- Windows系统批处理命令实现计划关机
操作步骤: 1.新建一个文本文件,粘贴下面代码,保存为shutdown.bat @echo off echo 请输入延迟关机分钟数 echo 小于1分钟将视为立即关机,负数为取消关机 set /p t ...
- CSS隐藏商务通等内容
CSS隐藏商务通等内容<style>#qiao-wrap{display:none !important;} </style>
- P30 Pro劲敌!DxO官宣新机:排行榜又要变
均为111分,接着是华为Mate 20 Pro.P20 Pro和三星Galaxy S10+,三款机型综合得分均为109分,前10名最后三款机型分别是小米9.iPhone XS Max和HTC U12+ ...
- IO流常用模式
主要运用2个设计模式,适配器和装饰者模式.
- 统计返回的Decimal/long型数据转换问题
mysql数据库在进行统计时候,返回的count()是个long型,sum()返回的是bigDecimal类型,前段需要的是int型故而需要进行转换. <select id="getD ...
- netty权威指南学习笔记二——netty入门应用
经过了前面的NIO基础知识准备,我们已经对NIO有了较大了解,现在就进入netty的实际应用中来看看吧.重点体会整个过程. 按照权威指南写程序的过程中,发现一些问题:当我们在定义handler继承Ch ...
- 001、在本地搭建SAP虚拟机环境,用于各种暴力操作
一.在某网盘下载一个SAP虚拟机,用于SAP学习和相关的测试.打开图中的服务器,点击运行,等灯都变成绿色 二.点击打开熟悉的SAP登录图标 三.很完美的运行起来了. 友情提示:SAP对电脑配置要求挺高 ...