文章目录
saltstack简介
1.saltstack简介
- Saltstack是基于Python开发的一套C/S架构,具备Puppet、Ansible功能于一身的配置管理工具,功能十分强大,各模块融合度及复用性极高;使用号称世界上最快的消息队列ZeroMQ使得Saltstack能够秒级在数万台服务器上进行各种操作,而且使用RAS Key方式确认身份,传输采用AES加密,安全性能更高;
- Saltstack不仅仅是一款配置管理工具,还是一款做云计算和数据中心架构编排利器。目前Salt-cloud项目也已经合并到Saltstack主项目里,Saltstack已经支持Docker相关模块,在友好地支持各大云平台之后,配合Saltstack的Mine实现各云平台业务自动扩展。
2.saltstack的通信端口
- master端:4505
- minion端:4506
- saltstack的master端监听4505与4506端口。4505为salt的消息发布系统,4506为salt客户端与服务端通信的端口;salt客户端程序不监听端口,客户端启动后,会主动连接master端注册,然后一直保持该TCP连接,master通过这条TCP连接对客户端控制,如果连接断开,master对客户端就无能为力了。当然,客户端若检查到断开后会定期的一直连接master端的。
3.saltstack三大功能
- 远程执行
- 配置管理
- 云管理
4.ZeroMQ简介
- ZeroMQ的详细信息可参考:https://www.cnblogs.com/rainbowzc/p/3357594.html或https://www.jianshu.com/p/36a7775b04ec
- ZeroMQ是一种基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。ZeroMQ是网络通信中新的一层,介于应用层和传输层之间(按照TCP/IP划分),其是一个可伸缩层,可并行运行,分散在分布式系统间。
Saltstack组件
1.SaltStack Master
- 中央管理系统\服务端,这个系统是用来发送命令和配置到SaltStack Minion上运行。
2.SaltStack Minion
- 接受受管理系统\客户端,该系统接收来自SaltStack Master命令和配置。
3.执行模块过程
- 特别对一个或多个命令从命令行执行受管理系统。 适用于:
- 实时监控、状态和库存
- 一次性命令和脚本
- 部署关键更新
4.规则(States)
- 声明或命令式表示一个系统的配置。
5.Grains
- 系统变量, Grains是静态信息基础管理系统,包括操作系统、内存和许多其他的系统属性,您还可以定义定制的Grains为任何系统。
6.Pillar
- 用户定义的变量,这些安全变量定义和存储在Salt Master,然后“分配”到一个或多个下属,Pillar数据存储值,文件路径,配置参数,和密码。
7.Top File
- 数据匹配公式
8.Runners
- 模块执行SaltStack Master执行支持任务,Runners报告的工作状态、连接状态读取数据从外部api,查询连接Salt Minions,和更多。
例如,安排Runners在许多系统之间协调配置部署。
9.Returners
- SaltStack Minion返回的数据发送到另一个系统,如数据库,Returners可以运行在Salt Minion或Salt Minion。
10.Reactor
- SaltStack环境中触发事件发生时的反应。
11.Salt Cloud / Salt Virt
- 云提供商提供系统/管理程序并立即把他们管理下。
12.SaltStack SSH
- SaltStack使用ssh运行命令,在没有Salt Minion的情况下。