一、简介

SaltStack是一种新型的基础设施管理软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流,以毫秒为单位。SaltStack提供了一个动态基础设施通信总线用于编排,远程执行、配置管理等等。SaltStack项目于2011年启动,年增长速度较快,五年期固定基础设施编制和配置管理的开源项目。SaltStack社区致力于保持slat项目集中、友好、健康、开放。



简单来说它的两大基础功能就是:<span style="color:#337FE5;">配置管理、远程命令执行</span>。剩下就是根据你的需求自由组合,实现更复杂的功能和系统管理。



SaltStack学习过程



大概步骤如下:
  1. 安装和配置SaltStack
  2. 远程执行命令所有管理系统
  3. 设计、开发和部署系统配置
  4. 用SaltStack反应器来自动化基础设施
  5. 协调使用SaltStack编排复杂的管理操作
<img alt="saltstack" title="saltstack" src="https://blog.361way.com/wp-content/uploads/2014/04/saltstack.png" style="width:auto ! important;height:auto ! important;" align="" height="271" width="634" />

二、SaltStack组件

<br />

1、SaltStack Master

中央管理系统\服务端,这个系统是用来发送命令和配置到SaltStack Minion上运行。



<img alt="saltstack-master" title="saltstack-master" src="https://blog.361way.com/wp-content/uploads/2014/04/saltstack-master.png" style="width:auto ! important;height:auto ! important;" align="" height="333" width="295" />

2、SaltStack Minion

接受受管理系统\客户端,该系统接收来自SaltStack Master命令和配置。



<img alt="salt_minion" src="https://blog.361way.com/wp-content/uploads/2014/04/salt-minion.png" class="img-polaroid" title="salt_minion" style="border:0px none;width:auto ! important;height:auto ! important;" align="" height="311" width="283" />



<br />

3、执行模块过程

特别对一个或多个命令从命令行执行受管理系统。 适用于:
  • 实时监控、状态和库存
  • 一次性命令和脚本
  • 部署关键更新
<img alt="remote_execution.png" src="https://blog.361way.com/wp-content/uploads/2014/04/salt-moudle.png" class="img-polaroid" title="remote_execution.png" style="border:0px none;width:auto ! important;height:auto ! important;" align="" height="558" width="630" />



<br />

4、规则(States)

声明或命令式表示一个系统的配置。



<img alt="salt_states.png" src="https://blog.361way.com/wp-content/uploads/2014/04/salt-states.png" class="img-polaroid" title="salt_states.png" style="border:0px none;width:auto ! important;height:auto ! important;" align="" height="509" width="585" />



<br />

5、Grains

系统变量, Grains是静态信息基础管理系统,包括操作系统、内存和许多其他的系统属性,您还可以定义定制的Grains为任何系统。



<img alt="salt_grains.png" src="https://blog.361way.com/wp-content/uploads/2014/04/salt-grains.png" class="img-polaroid" title="salt_grains.png" style="border:0px none;width:auto ! important;height:auto ! important;" align="" height="364" width="252" />



<br />

6、Pillar

用户定义的变量,这些安全变量定义和存储在Salt Master,然后“分配”到一个或多个下属,Pillar数据存储值,文件路径,配置参数,和密码。



<img alt="salt_pillar.png" src="https://blog.361way.com/wp-content/uploads/2014/04/salt-pillar.png" class="img-polaroid" title="salt_pillar.png" style="border:0px none;width:auto ! important;height:auto ! important;" align="" height="361" width="262" />



<br />

7、Top File

数据匹配公式



<img alt="salt_topfile.png" src="https://blog.361way.com/wp-content/uploads/2014/04/salt-topfile.png" class="img-polaroid" title="salt_topfile.png" style="border:0px none;width:auto ! important;height:auto ! important;" align="" height="485" width="566" />



<br />

8、Runners

模块执行SaltStack Master执行支持任务,Runners报告的工作状态、连接状态读取数据从外部api,查询连接Salt Minions,和更多。<br />

例如,安排Runners在许多系统之间协调配置部署。

<img alt="salt_runners.png" src="https://blog.361way.com/wp-content/uploads/2014/04/salt-runner.png" class="img-polaroid" title="salt_runners.png" style="border:0px none;width:auto ! important;height:auto ! important;" align="" height="346" width="443" />



<br />

9、Returners

SaltStack Minion返回的数据发送到另一个系统,如数据库,Returners可以运行在Salt Minion或Salt Minion。



<img alt="salt_returners.png" src="https://blog.361way.com/wp-content/uploads/2014/04/salt-returnners.png" class="img-polaroid" title="salt_returners.png" style="border:0px none;width:auto ! important;height:auto ! important;" align="" height="430" width="521" />



<br />

10、Reactor

SaltStack环境中触发事件发生时的反应。



<img alt="salt_reactor.png" src="https://blog.361way.com/wp-content/uploads/2014/04/salt-reactor.png" class="img-polaroid" title="salt_reactor.png" style="border:0px none;width:auto ! important;height:auto ! important;" align="" height="422" width="465" />



<br />

11、Salt Cloud / Salt Virt

云提供商提供系统/管理程序并立即把他们管理下。



<img alt="salt_cloud.png" src="https://blog.361way.com/wp-content/uploads/2014/04/salt-cloud.png" class="img-polaroid" title="salt_cloud.png" style="border:0px none;width:auto ! important;height:auto ! important;" align="" height="216" width="554" />



<br />

12、SaltStack SSH

SaltStack使用ssh运行命令,在没有Salt Minion的情况下。



<img alt="salt_ssh.png" src="https://blog.361way.com/wp-content/uploads/2014/04/salt-ssh.png" class="img-polaroid" title="salt_ssh.png" style="border:0px none;width:auto ! important;height:auto ! important;" align="" height="244" width="181" />



<br />