Scripts2026年4月16日·1 分钟阅读

SaltStack — Scalable Event-Driven Infrastructure Automation

Salt is a Python-based configuration management and remote execution engine that manages thousands of servers in real time using an event-driven architecture, ZeroMQ transport, and declarative YAML states.

Introduction

Salt (SaltStack) is an open-source configuration management and remote execution tool built for speed. It uses ZeroMQ for sub-second communication with thousands of nodes and provides both imperative (remote execution) and declarative (state) management.

What SaltStack Does

  • Manages configuration across thousands of servers concurrently via a master-minion architecture
  • Executes ad-hoc commands on any set of target machines in real time
  • Enforces desired state through YAML-based state files and formulas
  • Provides event-driven automation with reactors, beacons, and orchestration runners
  • Collects detailed system data through its Grains and Pillar subsystems

Architecture Overview

Salt follows a master-minion model where the master publishes commands over a ZeroMQ PUB channel and minions return results on a separate REP channel. Each minion identifies itself by an ID and key pair. States are rendered through a Jinja + YAML pipeline and applied idempotently. An optional Salt API exposes a REST interface for external integrations.

Self-Hosting & Configuration

  • Master config lives at /etc/salt/master; minion config at /etc/salt/minion
  • Pillar stores secrets and per-minion variables separate from states
  • Formulas (reusable state bundles) can be pulled from the official Salt Formulas GitHub org
  • File server supports Git, S3, and local backends for state distribution
  • Masterless mode via salt-call --local removes the need for a central server

Key Features

  • Sub-second execution across 10,000+ nodes thanks to ZeroMQ and msgpack serialization
  • Reactor system triggers automated responses to infrastructure events
  • Extensive module library covering cloud, containers, networking, and package management
  • Salt SSH provides agentless operation when installing minions is not possible
  • Thorough testing framework with salt-call state.show_sls and test=True dry runs

Comparison with Similar Tools

  • Ansible — Agentless via SSH; simpler for small fleets but slower at scale than Salt's persistent ZeroMQ connections
  • Puppet — Agent-based with a custom DSL; Salt uses YAML + Jinja which lowers the learning curve
  • Chef — Ruby-based with steep learning curve; Salt's Python ecosystem is more accessible to most ops teams
  • Terraform — Focused on provisioning infrastructure; Salt manages post-provisioning configuration and ongoing state

FAQ

Q: Is SaltStack still actively maintained after the VMware acquisition? A: Yes. The Salt project continues with regular releases, an active community, and contributions through the Broadcom-owned SaltProject organization.

Q: Can Salt manage cloud resources like AWS or GCP? A: Yes. Salt Cloud modules can provision and manage instances across AWS, GCP, Azure, DigitalOcean, and many other providers.

Q: How does Salt compare to Ansible in performance? A: Salt is significantly faster for large fleets because minions maintain persistent ZeroMQ connections, avoiding the SSH overhead Ansible incurs per task.

Q: Does Salt support Windows? A: Yes. Salt minions run natively on Windows and include modules for managing IIS, Windows services, registry keys, and Group Policy.

Sources

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产