• 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,所有可插拔

  • 相关阅读:
    《Java程序设计》第五周学习总结
    团队建设任务
    《Java程序设计》第四周学习总结
    ML_Review_GMM(Ch10)
    ML_Review_SVM(Ch9)
    ML_Review_LDA(Ch5)
    ML_Review_PCA(Ch4)
    关于Kernel的思考
    ML_Homework_Porject_2_LDA_KNN
    CV_Learn
  • 原文地址:https://www.cnblogs.com/jabbok/p/11190326.html
Copyright © 2020-2023  润新知