官方网站:http://repo.saltstack.com/
SaltStack简介
- SaltStack是基于Python开发的一套C/S架构配置管理工具
- 底层使用ZeroMQ消息队列pub/sub方式通信
- 采用RSA Key方式确认身份,传输采用AES加密
- 采用动态的连接总线, 使其可以用于编配, 远程执行, 配置管理等等
- 在Master和Minion端都是以守护进程的模式运行
- 一直监听配置文件中定义的ret_port-4506(接收minion请求)和publish_port-4505(发布消息)端口
多种配置管理工具对比
- Puppet(rubby开发,现在很少使用)
- ansible(python开发,轻量级,没有agent,大规模环境下使用ssh会很慢,串行传输)
- Saltstack(python开发,远程执行、配置管理、事件驱动基础设施、使用saltcloud可以管理私有云和公有云)
三大功能
- 运程执行
- 配置管理(状态)
- 云管理
四种运行方式
- Local
- Minion/Master C/S
- Syndic - zabbix proxy
- Salt SSH
SaltStack软件依赖
- Python版本大于2.6或小于3.0
- msgpack-python:SaltStack消息交换库
- YAML:SaltStack配置解析定义语法
- Jinja2:SaltStack states 配置模板
- MarkupSafe:Python Unicode 转换库
- apache-libcloud:SaltStack对云架构编排库
- Requests:HTTP Python库
- ZeroMQ:SaltStack消息系统
- pyzmq:ZeroMQ Python库
- PyCrypto:Python 密码库
- M2Crypto:Openssl Python 包装库
SaltStack主要组件
- Target:管理对象,通过管理和正则匹配Minion的ID来做一些集合
- Grains:saltStack记录Minion的一些静态信息的组件
- Pillar:存储和定义配置管理中需要的一些数据
- Module:管理对象操作
- States:saltStack中的配置语言
- Return:-SaltStack系统对执行Minion返回后的数据进行存储或者返回给其他程序
- Job:saltStack在执行任何一个操作都会在Master上产生一个jid号,内容就是此次操作的记录
- Event:SaltStack里面的对每个事件的一个记录
- Reactor:基于Event的每个事件来做相应的操作(states)
- Mine:SaltStack收集Minion数据存储到master的一个组件
- Peer:SaltStack中Minion向Master发布任务的一个组件