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. 题解 nflsoj550 【六校联合训练 省选 #9】序列

    题目链接 以下把值域(题面里的\(lim\))记做\(m\). 考虑求\(k\)的答案.考虑每个位置对答案的贡献,枚举位置\(i\),再枚举\(a[i]\)的值\(x\).设: \[ F(k)=\su ...

  2. ffmpeg 学习:000-概述和库的组成

    背景 ffmpeg bin工具 可能无法满足产品的使用,于是需要通过传参调用ffmpeg库,即在通过更底层的方式使用它. FFmpeg 介绍 FFmpeg是领先的多媒体框架,能够解码,编码,转码,复用 ...

  3. 第十届蓝桥杯 RSA解密(C++/ java)

    一道不错的题目,借鉴了网上的代码,用了拓展欧几里得算法求逆元,再用快速乘求每次a的余数,再快速幂对余数进行幂运算. #include <bits/stdc++.h> using names ...

  4. 51nod 1378:夹克老爷的愤怒 很好玩的一道树状dp

    1378 夹克老爷的愤怒 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  取消关注 夹克老爷逢三抽一之后,由于采用了新师爷的策略,乡民们叫苦不堪,开始组织 ...

  5. Phoenix与HBase集成进行数据分析

    安装好Phoenix后配置环境变量 export PHOENIX_PATH=/opt/cloudera/parcels/APACHE_PHOENIX-4.14.0-cdh5.14.2.p0.3expo ...

  6. 【capstone/ropgadget】环境配置

    具体环境配置可参考 https://github.com/JonathanSalwan/ROPgadget/tree/master 作者给出的安装方式 但具体配置中出现了问题,如引用时出现如下错误: ...

  7. Python--unique()与nunique()函数

    参考:https://www.cnblogs.com/xxswkl/p/11009059.html 1 unique() 统计list中的不同值时,返回的是array.它有三个参数,可分别统计不同的量 ...

  8. imput placeholder 移动端不居中问题

    input{ height: 100%; } input::-webkit-input-placeholder { display: flex; align-items: center; line-h ...

  9. Hadoop数据压缩技术

    一.Hadoop数据压缩及其优缺点 1.压缩技术的好处与坏处 好处: 减少存储磁盘空间 降低IO(网络的IO和磁盘的IO) 加快数据在磁盘和网络中的传输速度,从而提高系统的处理速度. 坏处: 由于使用 ...

  10. Nachos-Lab2-线程调度模块实现

    源码获取 https://github.com/icoty/nachos-3.4-Lab 内容一:总体概述 本实习希望通过修改Nachos系统平台的底层源代码,达到"扩展调度算法" ...