:first-child { margin-top: 0; } blockquote > :last-child { margin-bottom: 0; } img { border: 0; max-width: 100%; height: auto !important; margin: 2px 0; } table { border-collapse: collapse; border: 1px solid #bbbbbb; } td, th { padding: 4px 8px; border-collapse: collapse; border: 1px solid #bbbbbb; } @media only screen and (-webkit-max-device-width: 1024px), only screen and (-o-max-device-width: 1024px), only screen and (max-device-width: 1024px), only screen and (-webkit-min-device-pixel-ratio: 3), only screen and (-o-min-device-pixel-ratio: 3), only screen and (min-device-pixel-ratio: 3) { html, body { font-size: 17px; } body { line-height: 1.7; padding: 0.75rem 0.9375rem; color: #353c47; } h1 { font-size: 2.125rem; } h2 { font-size: 1.875rem; } h3 { font-size: 1.625rem; } h4 { font-size: 1.375rem; } h5 { font-size: 1.125rem; } h6 { color: inherit; } ul, ol { padding-left: 2.5rem; } blockquote { padding: 0 0.9375rem; } }
-->

div{font-size:15px;}.wiz-table-tools .wiz-table-menu-item.active .wiz-table-menu-sub {display: block}.wiz-table-tools .wiz-table-menu-sub:before, .wiz-table-tools .wiz-table-menu-sub:after {position: absolute;content: " ";border-style: solid;border-color: transparent;border-bottom-color: #cccccc;left: 22px;margin-left: -14px;top: -8px;border-width: 0 8px 8px 8px;z-index:10;}.wiz-table-tools .wiz-table-menu-sub:after {border-bottom-color: #ffffff;top: -7px;}.wiz-table-tools .wiz-table-menu-sub-item {padding: 4px 12px;font-size: 14px;}.wiz-table-tools .wiz-table-menu-sub-item.split {border-top: 1px solid #E0E0E0;}.wiz-table-tools .wiz-table-menu-sub-item:hover {background-color: #ececec;}.wiz-table-tools .wiz-table-menu-sub-item.disabled {color: #bbbbbb;cursor: default;}.wiz-table-tools .wiz-table-menu-sub-item.disabled:hover {background-color: transparent;}.wiz-table-tools .wiz-table-menu-item.wiz-table-cell-bg:hover .wiz-table-color-pad {display: block;}.wiz-table-tools .wiz-table-color-pad {display: none;padding: 10px;box-sizing: border-box;width: 85px;height: 88px;background-color: #fff;cursor: default;}.wiz-table-tools .wiz-table-color-pad > div{font-size:15px;}.wiz-table-tools .wiz-table-color-pad .wiz-table-color-pad-item {display: inline-block;width: 15px;height: 15px;margin-right: 9px;position: relative;}.wiz-table-tools .wiz-table-color-pad .wiz-table-color-pad-item i.pad-demo {position: absolute;top:3px;left:0;}.wiz-table-tools .wiz-table-color-pad .wiz-table-color-pad-item .icon-oblique_line{color: #cc0000;}.wiz-table-tools .wiz-table-color-pad .wiz-table-color-pad-item:last-child {margin-right: 0;}.wiz-table-tools .wiz-table-color-pad .wiz-table-color-pad-item.active i.editor-icon.icon-box {color: #448aff;}.wiz-table-tools .wiz-table-cell-align {display: none;padding: 10px;box-sizing: border-box;width: 85px;height: 65px;background-color: #fff;cursor: default;}.wiz-table-tools .wiz-table-cell-align .wiz-table-cell-align-item {display: inline-block;width: 15px;height: 15px;margin-right: 9px;position: relative;}.wiz-table-tools .wiz-table-cell-align .wiz-table-cell-align-item:last-child {margin-right:0}.wiz-table-tools .wiz-table-cell-align .wiz-table-cell-align-item i.valign{position: absolute;top:3px;left:0;color: #d2d2d2;}.wiz-table-tools .wiz-table-cell-align-item.active i.editor-icon.valign {color: #a1c4ff;}.wiz-table-tools .wiz-table-cell-align-item.active i.editor-icon.icon-box,.wiz-table-tools .wiz-table-cell-align-item.active i.editor-icon.align {color: #448aff;}.wiz-table-tools .wiz-table-color-pad .wiz-table-color-pad-item:last-child,.wiz-table-tools .wiz-table-cell-align .wiz-table-cell-align-item:last-child {margin-right: 0;}th.wiz-selected-cell-multi, td.wiz-selected-cell-multi {background: rgba(0,102,255,.05);}th:before,td:before,#wiz-table-col-line:before,#wiz-table-range-border_start_right:before,#wiz-table-range-border_range_right:before{content: " ";position: absolute;top: 0;bottom: 0;right: -5px;width: 9px;cursor: col-resize;background: transparent;z-index:100;}th:after,td:after,#wiz-table-row-line:before,#wiz-table-range-border_start_bottom:before,#wiz-table-range-border_range_bottom:before{content: " ";position: absolute;left: 0;right: 0;bottom: -5px;height: 9px;cursor: row-resize;background: transparent;z-index:100;}.wiz-table-container {}.wiz-table-body {position:relative;padding:0 0 10px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;}.wiz-table-body table {margin:0;outline:none;}td,th {height:28px;word-break:break-all;box-sizing:border-box;outline:none;}body pre.prettyprint {padding:0;}body pre.prettyprint code {white-space: pre;}body pre.prettyprint.linenums {box-shadow:none; overflow: auto;-webkit-overflow-scrolling: touch;}body pre.prettyprint.linenums ol.linenums {box-shadow: 40px 0 0 #FBFBFC inset, 41px 0 0 #ECECF0 inset; padding: 10px 10px 10px 40px !important;}
-->

SaltStack 的子系统:
SaltStack 包含了超过 20 种的支持可插拔的子系统,我们中的大多数可能只对少数子系统感兴趣。常见的 SaltStack 子系统如下表所示。
名称 说明
认证(Authentication) Authorizes a user before running a job.
文件服务(File server) Distributes files.
安全数据存储(Secure data store) Makes user-defined variables and other data securely available.
状态展示(State representation) Describes your infrastructure and system configurations.
返回值格式化(Return formatter) Formats job results into a normalized data structure.
结果缓存(Result cache) Sends job results to long-term storage.
远程执行(Remote execution) Runs a wide variety of tasks to install software, distribute files, and other things you need to do to manage systems.
配置(Configuration) Configures targeted systems to match a desired state.
 

SaltStack 常用子系统与插件的结构图如下所示。

作业执行时各子系统的关联
当一个作业运行时,多个 Salt 子系统将各自调用,以执行作业,类似如下图所示。

在每个步骤中,子系统将其工作委派给已配置的插件。例如:步骤 7 中 Returner 的插件可以是针对 MySQL、Redis 甚至空配置的。在每个步骤中,有许多不同的插件可用于执行任务,从而产生了数百种可能的 Salt 配置和工作流程。
 
SaltStack 的虚拟模块:
对于同样的任务而言,在不同的操作系统下,将会有很大的区别。例如:包管理模块在 Debian 系统里称为 aptpkg;在 Redhat 系统里称为 yumpkg。
SaltStack 通过虚拟模块技术,抽象化了操作系统的底层细节。例如:虽然包管理模块在各个系统中不尽相同,但是在 Salt 中均可以通过调用 pkg 远程执行模块来进行包管理。当 Salt 调用如 pkg 这样的模块时,实际上将会根据所处的操作系统环境,导入虚拟模块执行操作。
注意:当阅读模块文档时,建议先阅读非虚拟模块的内容,以理解其行为。随后查看对应模块内 __virtualname__ 的内容,以确定 Salt 实际导入虚拟对象的行为。 
 
参考资料
https://docs.saltstack.com/en/getstarted/system/plugins.html
 
 
 
 

最新文章

  1. 清除svn账户账号密码
  2. 查看Android系统给APP分配的最大堆栈
  3. Java BigDecimal详解
  4. mongodb学习02基础知识
  5. cookie一些简单的操作
  6. <转载>内存管理内幕-动态分配的选择、折衷和实现 对malloc内存分配有个简单的描述,对内存管理有个大致的说明
  7. Mahout源码MeanShiftCanopyDriver分析之二MeanShiftCanopyMapper仿造
  8. android小知识之多个listview在同一界面只有item高亮
  9. Redis 集成Spring(spring-data-redis)
  10. Yii2 基于RESTful api 坑 访问会把控制器名称变为复数
  11. ZUFE OJ 2145 05机关图
  12. 1754: [Usaco2005 qua]Bull Math
  13. 分布式Java应用与实践 (一)
  14. js的onscroll、scrollTop、scrollHeight及window.scroll等方法
  15. APIcloud 移动端常用事件
  16. 【转载】Google 程序员消灭 Bug 的 5 大法宝!
  17. Educational Codeforces Round 61 Editorial--C. Painting the Fence
  18. CentOS7防火墙firewalld设置
  19. 【转】idea 2018注册码(激活码)永久性的
  20. H+ 后台主题UI框架

热门文章

  1. worldpress自定义页面
  2. 快速创建yii2 RESTful api的小记
  3. LINUX下多路径的介绍和安装配置(测试未写完)
  4. opencv Mat中某点的值
  5. emacs之开始就加载tag
  6. 理解C/C++中const char*、char* const、const char* const、char* const*等等
  7. scanf在竞赛中的技巧总结ing
  8. Python库-re(正则表达式)
  9. Protobuff java 文件生成命令
  10. struts2学习(9)struts标签2(界面标签、其他标签)