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的更多相关文章

  1. Windows 8实例教程系列 - 理解应用框架

    原文:Windows 8实例教程系列 - 理解应用框架 Windows 操作系统之所以风靡世界,是因为其“易学易用”,从用户的角度出发,让数以万计的非IT人员使用计算机实现娱乐,工作等目的.Windo ...

  2. SaltStack入门篇(四)之深入理解SaltStack远程执行

    1.目标 2.执行模块 3.返回 salt ‘*’ cmd.run ‘uptime’ 命令 目标 执行模块 执行模块参数 1.SlatStack远程执行–目标 执行目标:https://docs.sa ...

  3. Laravel 服务容器实例教程 —— 深入理解控制反转(IoC)和依赖注入(DI)

    容器,字面上理解就是装东西的东西.常见的变量.对象属性等都可以算是容器.一个容器能够装什么,全部取决于你对该容器的定义.当然,有这样一种容器,它存放的不是文本.数值,而是对象.对象的描述(类.接口)或 ...

  4. Spring Boot2 系列教程(三)理解 Spring Boot 项目中的 parent

    前面和大伙聊了 Spring Boot 项目的三种创建方式,这三种创建方式,无论是哪一种,创建成功后,pom.xml 坐标文件中都有如下一段引用: <parent> <groupId ...

  5. SpringBoot2.x入门教程:理解配置文件

    前提 这篇文章是<SpringBoot2.x入门>专辑的第4篇文章,使用的SpringBoot版本为2.3.1.RELEASE,JDK版本为1.8. 主要介绍SpringBoot配置文件一 ...

  6. Guitar Pro教程之理解记谱法

    前面的章节我们讲解了很多关于Guitar Pro'的功能使用,今天小编还是采用图文结合的方式为大家讲解它的理解记谱法,对于很多新人来说,在我们看谱之前,我们肯定要先熟悉他的一些功能如何使用以及一些关于 ...

  7. guitar pro系列教程(二十七):Guitar Pro教程之理解记谱法

    前面的章节我们讲解了很多关于Guitar Pro'的功能使用,今天小编还是采用图文结合的方式为大家讲解它的理解记谱法,对于很多新人来说,在我们看谱之前,我们肯定要先熟悉他的一些功能如何使用以及一些关于 ...

  8. Spring Boot2 系列教程(四)理解Spring Boot 配置文件 application.properties

    在 Spring Boot 中,配置文件有两种不同的格式,一个是 properties ,另一个是 yaml . 虽然 properties 文件比较常见,但是相对于 properties 而言,ya ...

  9. Spring Boot2 系列教程(七)理解自动化配置的原理

    Spring Boot 中的自动化配置确实够吸引人,甚至有人说 Spring Boot 让 Java 又一次焕发了生机,这话虽然听着有点夸张,但是不可否认的是,曾经臃肿繁琐的 Spring 配置确实让 ...

随机推荐

  1. Mac 终端启动AVD模拟器

    cd ~/Library/Android/sdk/tools ./emulator -list-avds // 列出av列表 Nexus_5X_API_26 ./emulator @Nexus_5X_ ...

  2. 0203 生成mysql的数据库的数据字典

    原理 项目的数据库字典表是一个很重要的文档.通过此文档可以清晰的了解数据表结构及开发者的设计意图. 通常为了方便我都是直接在数据库中建表,然后通过工具导出数据字典. 在Mysql数据库中有一个info ...

  3. Codeforces Forethought Future Cup Elimination Round 选做

    1146C Tree Diameter 题意 交互题.有一棵 \(n(n\le 100)\) 个点的树,你可以进行不超过 \(9\) 次询问,每次询问两个点集中两个不在同一点集的点的最大距离.求树的直 ...

  4. Windows系统批处理命令实现计划关机

    操作步骤: 1.新建一个文本文件,粘贴下面代码,保存为shutdown.bat @echo off echo 请输入延迟关机分钟数 echo 小于1分钟将视为立即关机,负数为取消关机 set /p t ...

  5. CSS隐藏商务通等内容

    CSS隐藏商务通等内容<style>#qiao-wrap{display:none !important;} </style>

  6. P30 Pro劲敌!DxO官宣新机:排行榜又要变

    均为111分,接着是华为Mate 20 Pro.P20 Pro和三星Galaxy S10+,三款机型综合得分均为109分,前10名最后三款机型分别是小米9.iPhone XS Max和HTC U12+ ...

  7. IO流常用模式

    主要运用2个设计模式,适配器和装饰者模式.

  8. 统计返回的Decimal/long型数据转换问题

    mysql数据库在进行统计时候,返回的count()是个long型,sum()返回的是bigDecimal类型,前段需要的是int型故而需要进行转换. <select id="getD ...

  9. netty权威指南学习笔记二——netty入门应用

    经过了前面的NIO基础知识准备,我们已经对NIO有了较大了解,现在就进入netty的实际应用中来看看吧.重点体会整个过程. 按照权威指南写程序的过程中,发现一些问题:当我们在定义handler继承Ch ...

  10. 001、在本地搭建SAP虚拟机环境,用于各种暴力操作

    一.在某网盘下载一个SAP虚拟机,用于SAP学习和相关的测试.打开图中的服务器,点击运行,等灯都变成绿色 二.点击打开熟悉的SAP登录图标 三.很完美的运行起来了. 友情提示:SAP对电脑配置要求挺高 ...