SaltStack 3008 介绍与选型指南
SaltStack 3008 介绍与选型指南:基于官方资料溯源的事件驱动自动化架构、Master/Minion 模型、State 与 Grain 核心概念、快速上手,说明 Broadcom 治理与包仓库迁移现状,并对比 Ansible、Puppet、Chef 给出选型建议(查询日期 2026-10-19)。
SaltStack 3008 介绍与选型指南
一、信息基准
1.1 查询说明
- 查询日期:2026-10-19。
- 信息获取方式:纯官方资料溯源(GitHub 官方仓库 saltstack/salt 发行页与 README、saltproject.io 官方站点与公告博客、docs.saltproject.io 官方文档),本文不做本地安装与运行实测。
- 版本结论:本次介绍的版本为 Salt 3008 系列(Salt 项目当前已不再使用「SaltStack」作为产品名,官方称 Salt Project / Salt),最新补丁 v3008.3(2026-09-30 发布);3008.0 GA 于 2026-05-27 发布。
1.2 版本依据
| 项目 | 实查结果(2026-10-19) | 来源 |
|---|---|---|
| 最新补丁 | v3008.3(2026-09-30) | github.com/saltstack/salt/releases |
| 多线并行维护 | v3007.15、v3006.28 均于 2026-09-30 同日发布 | github.com/saltstack/salt/releases |
| 3008 系列时间线 | 3008.0(2026-05-27)、3008.1(2026-06-11)、3008.2(2026-07-01)、3008.3(2026-09-30) | github.com/saltstack/salt/releases.atom |
| 代码仓库 | saltstack/salt | github.com/saltstack/salt |
| 开源许可 | Apache License 2.0 | 仓库 README 徽章与 LICENSE |
| 官方包仓库 | packages.broadcom.com(RPM/DEB/GENERIC) | saltstack/salt README |
1.3 官方来源清单
二、软件概述
本文介绍的是 Salt 3008(开源版,最新补丁 v3008.3,2026-09-30 发布)。
Salt(历史上常称 SaltStack)是基于 Python 的事件驱动自动化工具与框架,用于部署、配置和管理大规模 IT 系统(官方 README 定位)。其典型用途包括配置管理(操作系统部署与配置、软件安装、服务管理、防配置漂移)、远程执行、编排与自愈系统等。
治理现状是了解 Salt 必须说清的部分:SaltStack 公司 2020 年被 VMware 收购,VMware 又于 2023 年被 Broadcom 收购;官方 README 明确「Salt Project 仍是开源生态,Broadcom 作为项目的官方赞助方与管理方确保代码完整性与质量,许多核心贡献者即 Broadcom 员工」,Salt 也是 VMware Salt(前身 Aria Automation Config)产品的底层引擎。社区侧变化包括:2024-09 官方宣布不再为 Arch Linux、Amazon Linux、openSUSE、macOS 构建官方包;官方包仓库从 repo.saltproject.io 迁移到 packages.broadcom.com;2025-01 官方公告 POP 与 Idem 项目进入归档。SUSE/openSUSE 发行版内的 salt 包则由 SUSE 侧随发行版自行维护(SUSE 安全公告与 openSUSE Tumbleweed 变更日志均有 salt 包更新记录,2026-10-19 实查)。
Salt 仓库在 GitHub 上拥有 15719 stars(2026-10-19 实查,saltstack/salt 仓库),仍以 Apache-2.0 许可开源。
三、核心架构
3.1 Master / Minion 模型
- Master:中心控制节点,保存状态定义与证书,向 Minion 下发指令与状态。
- Minion:被管理节点,接收并执行任务,返回结果;Minion 也可脱离 Master 以 masterless(salt-call 本地)模式运行。
- 消息总线:Master 与 Minion 之间通过持久消息通道(ZeroMQ 默认,另可选 TCP/SSH)通信,构成事件驱动的命令与返回通道(官方文档)。
3.2 核心概念
| 概念 | 说明 |
|---|---|
| Remote Execution | 以目标选择器(Glob/GRAIN/Pillar 等)向成组节点下发命令 |
| State(SLS) | 声明式状态文件,描述系统期望状态(YAML + Jinja) |
| Grains | Minion 的静态事实数据(系统、内核、IP 等) |
| Pillar | 面向节点的敏感/业务数据分发 |
| Formulas | 可复用的状态模块集合 |
| Reactor | 基于事件总线的事件响应自动化 |
3.3 运行形态
- 主从模式:常规 Master/Minion 集群管理。
- Salt SSH:无代理(agentless)模式,通过 SSH 批量执行。
- masterless:Minion 本地自管理,适合不可变基础设施与容器镜像构建。
- API/编排:Salt API 对外暴露 REST 接口,Orchestrate 完成跨节点编排。
四、功能特性
4.1 声明式配置管理
State 模块以 YAML 编写期望状态(pkg.installed、service.running、file.managed 等),按需顺序(requisite)声明依赖;配合 Pillar 实现环境差异参数化(官方用户指南)。
4.2 远程执行与模块体系
Salt 内置执行模块(pkg、file、service、network、cmd 等)覆盖常见运维操作,salt <target> <module>.<func> 即时执行;模块可用 Python 扩展,社区模块生态覆盖云、数据库、网络设备等(官方模块文档)。
4.3 3008 系列状态
从发行页实查看,Salt 当前维持 3006/3007/3008 三条版本线并行维护,且三条线在 2026-09-30 同日各发布一个补丁(v3006.28/v3007.15/v3008.3),补丁节奏稳健;3008 系列 2026 年内已发布 3008.0→3008.3(官方 releases,2026-10-19 实查)。
4.4 商业版与治理注意
Broadcom 侧的商业产品为 VMware Salt(前身 vRealize Automation SaltStack Config / Aria Automation Config)。开源团队选型时需注意:官方包仓库已迁移至 packages.broadcom.com,部分发行版(openSUSE、Arch、Amazon Linux、macOS)不再有官方上游包,需改用发行版包或 PyPI 安装(官方博客与 README)。
五、快速上手
以下流程转述自官方安装指南与官方文档(https://docs.saltproject.io/salt/install-guide/en/latest/index.html ),本文不做本地实测。
5.1 获取
官方安装指南提供各发行版安装路径:Linux 优先使用 packages.broadcom.com 上的官方 RPM/DEB 仓库,或使用 Salt Bootstrap 脚本;Windows/macOS 走 GENERIC 包。完整指引见官方安装指南。
5.2 启动 Master 与 Minion
官方流程为:在控制节点安装并启动 salt-master 服务,在受管节点安装并启动 salt-minion,Minion 配置文件中 master: 指向控制节点地址后重启服务。
5.3 密钥接受与连通验证
按官方文档,Master 端使用 salt-key -L 查看待接受密钥,salt-key -a '<minion-id>' 接受;随后以 salt '*' test.ping 验证全部 Minion 连通,salt '*' grains.items 查看 Minion 事实数据。状态应用使用 salt '*' state.apply <状态名>。完整模块与状态语法见官方用户指南:https://docs.saltproject.io/salt/user-guide/en/latest/ 。
本站已交付实测向的运维内容,命令细节可参考《SaltStack 常用命令与工具详解》(https://www.quzuo.net/document/X82QmwIaDmxp )。
六、适用场景与限制
6.1 适用场景
- 大规模服务器群组的配置管理与配置漂移防护(事件驱动架构在大批量节点下延迟低)。
- 远程执行与批量运维操作(打补丁、重启服务、收集状态)。
- 需要事件响应(Reactor)与自愈能力的自动化体系。
- 混合云/网络设备场景(Salt Proxy Minion 支持网络设备等代理管理)。
6.2 限制与注意事项
- 治理集中:项目由 Broadcom 赞助与管理,社区对上游路线的影响力依赖 Broadcom 投入;周边项目(POP、Idem)已归档,选型需关注长期社区健康度。
- 包分发变化:官方包仓库已迁 packages.broadcom.com,openSUSE/macOS 等平台无官方上游包,升级通道需提前规划。
- 学习曲线:SLS/Jinja/Pillar 概念体系较重,Python 技术栈背景的团队更易上手。
- Master 单点:常规架构需自行规划 Master 高可用(多 Master、syndic 分层等官方拓扑)。
七、同类选型对比
7.1 候选概览
| 工具 | 定位 | 开源许可 |
|---|---|---|
| Salt 3008 | 事件驱动的远程执行与配置管理 | Apache-2.0 |
| Ansible 14 | 无代理自动化(SSH) | GPL-3.0 |
| Puppet 8 | 声明式配置管理(C/S 架构) | Apache-2.0 |
| Chef Infra Client 19 | DSL 驱动的配置管理 | Apache-2.0(源码仓库) |
7.2 量化对比(2026-10-19 实查)
| 维度 | Salt 3008 | Ansible 14 | Puppet 8 | Chef Infra 19 |
|---|---|---|---|---|
| 最新版本 | v3008.3(2026-09-30) | 社区包 14.5.0 / ansible-core v2.21.5 | 仓库最新 tag 8.10.0(2024-10-22) | v19.4.46(2026-10-09 tag) |
| 开源许可 | Apache-2.0 | GPL-3.0 | Apache-2.0 | Apache-2.0(发行版另有 Chef EULA,见本站 Chef 专栏) |
| GitHub stars | 15719(saltstack/salt) | 71015(ansible/ansible) | 7967(puppetlabs/puppet) | 8258(chef/chef) |
| 最近发版节奏 | 三条版本线同日补丁,节奏稳健 | minor 约 2-3 周一版(2.21.5 为 core 最新 release) | GitHub tag 更新明显放缓(8.10.0 后无新 tag) | 近一周连发 5 个补丁 tag,节奏极快 |
| 架构 | Master/Minion(消息总线,含 Salt SSH 无代理) | 无代理(SSH,控制机批量执行) | Agent/Server(C/S,常驻 agent) | Agent/Server(Chef Infra Server + Client) |
| 配置语言 | YAML(SLS)+ Jinja | YAML(Playbook)+ Jinja2 | Puppet DSL(Ruby 系) | Ruby DSL(Recipe) |
| 治理主体 | Broadcom(官方赞助/管理) | Red Hat / 社区 | Perforce | Progress |
(版本与日期:Salt 见 github.com/saltstack/salt/releases;Ansible 见 PyPI ansible 14.5.0 与 github.com/ansible/ansible/releases/tag/v2.21.5;Puppet 见 github.com/puppetlabs/puppet/tags;Chef 见 github.com/chef/chef/tags。stars 为各仓库 2026-10-19 实查。)
7.3 选型建议
- 已有 Python 技术栈、看重远程执行速度与事件驱动能力:Salt 的消息总线与 ZeroMQ 架构在大规模节点下命令下发快,Reactor/Orchestrate 的事件编排是差异化能力;但需接受 Broadcom 治理与包分发变化。
- 追求最广社区、最低上手门槛、无代理架构:Ansible 仍是默认答案,社区规模(71015 stars)与生态最厚,参考本站《Ansible 14.5 介绍与选型指南》(https://www.quzuo.net/document/GRfPckb7zqh7 )。
- 强声明式、长期稳定态管理、有 Puppet DSL 团队资产:可继续 Puppet,但其 GitHub 仓库 2024-10 后无新 tag,开源线活跃度需重点评估(参考本站 Puppet 专栏命令与运维实测文档)。
- 已有 Chef/Habitat 生态或 Ruby 团队:Chef Infra Client 仍在高频迭代(19.4.46),但注意发行版 EULA 与 Chef 360 商业平台路线,参考本站《Chef Infra Client 19.4.46 介绍与选型指南》(https://www.quzuo.net/document/DW3gNgnEXBG1 )。
- 综合看:新项目若无存量包袱,Ansible/Salt 二选一为主流路径——要「轻 agent、生态大」选 Ansible,要「推模式 + 事件驱动 + 大规模低延迟」选 Salt。
八、参考链接
- 官方站点:https://saltproject.io/
- 官方文档:https://docs.saltproject.io/
- 安装指南:https://docs.saltproject.io/salt/install-guide/en/latest/index.html
- 源码仓库:https://github.com/saltstack/salt
- 发行页:https://github.com/saltstack/salt/releases
- 包仓库迁移公告:https://saltproject.io/blog/salt-project-package-repo-migration-and-guidance/
- POP/Idem 归档公告:https://saltproject.io/tags/announcement/
- 官方包仓库:https://packages.broadcom.com/artifactory/saltproject-rpm
- Ansible 仓库:https://github.com/ansible/ansible
- Puppet 仓库:https://github.com/puppetlabs/puppet
- Chef 仓库:https://github.com/chef/chef