Salt Fundamentals
Salt is an automation framework for running commands, applying desired configuration, and coordinating work across managed systems. A central master can target connected minions, while Salt states describe the configuration those systems should maintain.
itInfrastructure and operations | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic — Salt Fundamentals
Salt is the part of infrastructure work that lets one place tell many systems what to do, then wait for the receipts. Before that, the usual arrangement was a collection of individual sessions, scripts, and a growing suspicion that one machine had not received the memo.
Salt has two habits worth keeping separate. Remote execution asks selected minions to do something now. States describe the result a system should keep having. The first is an instruction. The second is a promise with a clipboard. Mixing them up is how an urgent command becomes a very elaborate configuration strategy.
The machinery is a master, a service that publishes a job, and minions, services that decide whether its target matches them, run the function, and return data. A target is not decorative punctuation. It decides who hears the job, which makes it part of the blast radius. Start with one explicit minion ID. A wildcard can wait its turn.
Before any of that, a minion presents a key. The master holds it pending until acceptance. Compare the fingerprint first. The slightly surprising part is that Salt's speed does not make this ritual less relevant; it makes a wrong identity or broad target more consequential. Centralized action is still action, only with better postage.
State files, often called SLS files, express outcomes such as a package installed, a file managed, or a service running. Salt checks the current condition and changes it only when needed. A second unchanged apply should report no changes. That quiet second run is useful evidence that the declaration describes a stable outcome instead of repeatedly poking the system to see whether it wakes up annoyed.
The declarations form a graph. Requisites say which state must succeed first, which one reacts to a change, and which one waits for a failure. Grains describe the minion; Pillar supplies master-defined data for selected minions. Those names are peculiar, but their jobs are not: one reports what the system is, and the other provides the configuration it needs.
Start with the Intro for the publish, execute, return loop and the trust boundary. The Slides compress the components and deployment choices into a map. The Cheatsheet holds the command shapes, targeting forms, state operations, and rollout checks. The Practice Reference and exercise turn a managed file into a small, observable proof that desired state can restore drift. After that, the Reference tab is where the precise, current documentation lives, because infrastructure tools are fond of changing details while keeping the nouns.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://saltproject.io/
Supports
- Salt as an open-source framework for remote execution, configuration management, and orchestration
- Official routes to installation, user, reference, release, and community material
- https://docs.saltproject.io/en/master/topics/salt_system_architecture.html
Supports
- Master, minion, publish, execute, and return architecture
- Targets, grains, states, top files, highstate, Pillar, events, reactors, runners, and orchestration
- Master and minion services and the central message bus
- https://docs.saltproject.io/en/latest/topics/tutorials/walkthrough.html
Supports
- Basic command anatomy
- Master and minion connection and authentication sequence
- Introductory remote execution and state workflow
- https://docs.saltproject.io/en/latest/topics/targeting/index.html
Supports
- Glob, regular-expression, list, grain, Pillar, and compound targeting
- Boolean compound target syntax
- https://docs.saltproject.io/salt/user-guide/en/latest/topics/states.html
Supports
- Desired-state purpose and state module behavior
- State tree, top file, environments, and highstate
- Distinction between execution and state modules
- https://docs.saltproject.io/en/latest/ref/states/requisites.html
Supports
- Dependency graph and requisite direction
- require, watch, onchanges, onfail, in, and any forms
- Service reaction after configuration change
- https://docs.saltproject.io/en/latest/topics/grains/index.html
Supports
- Grains as relatively static minion facts
- Grain use for targeting and templates
- Guidance for choosing Pillar or an execution module instead
- https://docs.saltproject.io/en/latest/topics/pillar/
Supports
- Master-defined data targeted and compiled for individual minions
- Pillar use in state rendering
- Suitability for sensitive per-minion values
- https://docs.saltproject.io/salt/user-guide/en/latest/topics/reactors.html
Supports
- Event bus, beacon, reactor, and client roles
- Sequential reactor rendering and longer runner work
- Risk of beacon and reactor loops
- https://docs.saltproject.io/salt/user-guide/en/latest/topics/security.html
Supports
- Minion key presentation, manual acceptance, and fingerprint verification
- Master authentication and encrypted communication
- Risks of automatic acceptance and open mode
- Publisher access controls
- https://docs.saltproject.io/en/latest/topics/troubleshooting/
Supports
- SLS rendering and compiled-state inspection
- State test mode behavior
- Connection and firewall troubleshooting path
- https://github.com/sindresorhus/awesome
Supports
- Starting index used to discover topic-specific awesome lists
- https://github.com/hbokh/awesome-saltstack
Supports
- Discovery of salt-lint and salt-sproxy as Salt ecosystem tools
- Curated Salt ecosystem categories and descriptions
- https://salt-lint.readthedocs.io/en/latest/
Supports
- SLS formatting and state-authoring checks
- Local and continuous-integration usage
- https://salt-sproxy.readthedocs.io/en/latest/
Supports
- Salt plug-in for device management without continuously running proxy minions
- Targeting and quick-start workflow
- https://docs.saltproject.io/salt/install-guide/en/latest/topics/quickstart.html
Supports
- A managed-file state exercise using salt-call
- Applying a state, simulating drift, and restoring declared file content
- https://docs.saltproject.io/en/3006/ref/cli/salt-call.html
Supports
- salt-call local minion execution
- Local mode avoiding master contact when the local option is supplied
- https://docs.saltproject.io/en/latest/topics/releases/2015.5.0.html
Supports
- Beacon system introduction and event-bus integration
- Safer cmd module shell defaults
- https://docs.saltproject.io/en/latest/topics/releases/2016.3.0.html
Supports
- onchanges requisite behavior in Salt 2016.3
- https://docs.saltproject.io/en/latest/topics/releases/2017.7.0.html
Supports
- Master-first upgrade guidance for Salt 2017.7
- https://docs.saltproject.io/en/latest/topics/releases/index.html
Supports
- Historical Salt release lines from 0.6 through current releases
- https://docs.saltproject.io/en/latest/topics/releases/2018.3.0.html
Supports
- Salt 2018.3 Oxygen release documentation
- https://docs.saltproject.io/en/latest/topics/releases/2019.2.0.html
Supports
- Salt 2019.2 Fluorine release documentation
- https://docs.saltproject.io/en/latest/topics/releases/3000.html
Supports
- Salt 3000 Neon release documentation
- https://docs.saltproject.io/en/latest/topics/releases/3003.html
Supports
- Salt 3003 Aluminium release documentation
- https://saltproject.io/2023/04/18/salt-3006-lts-is-available/
Supports
- Salt 3006.0 LTS announcement
- https://saltproject.io/2024/03/06/salt-3007-sts-is-available/
Supports
- Salt 3007 STS announcement
- https://www.redhat.com/en/technologies/management/ansible
Supports
- Ansible Automation Platform as a configuration and automation alternative
- https://www.puppet.com/
Supports
- Puppet as a configuration-management alternative
- https://www.chef.io/
Supports
- Chef as a configuration-management alternative
- https://cfengine.com/
Supports
- CFEngine as a configuration-management alternative
