Salt, a new approach to infrastructure management, is easy enough to get
running in minutes, scalable enough to manage tens of thousands of servers,
and fast enough to communicate with those servers in seconds.
Salt delivers a dynamic communication bus for infrastructures that can be used
for orchestration, remote execution, configuration management and much more.
See also
Other Documentation
Download an offline copy of the latest Salt documentation:
PDF builds of the docs for each Salt release can usually be found on
the corresponding release page on GitHub.
While setting up, and using, Salt is a simple task, its capabilities run much
deeper. These documents provide a greater understanding of how Salt
empowers infrastructure management.
Running pre-defined or arbitrary commands on remote hosts, also known as
remote execution, is the core function of Salt. The following links explore
modules and returners, which are two key elements of remote execution.
Modules
Salt modules, fundamental to remote execution, provide
functionality such as installing packages, restarting a service,
running a remote command, transferring files, and so on.
Salt returners allow saving minion responses in various datastores, or
to various locations, in addition to displaying the responses at the CLI.
Returners can be used to extend Salt to communicate with new, or custom,
interfaces and to support new databases.
Use targeting to specify which minions should
execute commands and manage server configuration. The following links provide
additional information about targeting and matching minions.
Match minions using grains, which are bits of static information about the
minion such as OS, software version, virtualization, CPU, memory, and so on.
Salt contains a robust and flexible configuration management framework, which
is built on the remote execution core. This framework executes on the minions,
allowing effortless, simultaneous configuration of tens of thousands of hosts,
by rendering language specific state files. The following links provide
resources to learn more about state and renderers.
States
Express the state of a host using small, easy to read, easy to
understand configuration files. No programming required.
Contains: a guide on how to write Salt state modules, easily extending
Salt to directly manage more software.
Renderers
Renderers use state configuration files written in a variety of languages,
templating engines, or files. Salt's configuration management system is,
under the hood, language agnostic.
Contains: a list of renderers.
YAML is one choice, but many systems are available, from
alternative templating engines to the PyDSL language for rendering
sls formulas.
Contains: more information about renderers. Salt states are only
concerned with the ultimate highstate data structure, not how the
data structure was created.
Syndic is a tool to allow one master host to manage many masters, which
in turn manage many minions. Scale Salt to tens of thousands of hosts or
across many different networks.
At it's core, Salt is a highly scalable communication layer built on
top of ZeroMQ, which enables remote execution and configuration
management. The possibilities are endless and Salt's future looks
bright.
Expose a Salt API such as REST, XMPP, WebSockets, or others using netapi
modules. Run these modules using the salt-api daemon.
See the full list of netapi modules.
Looking for an easy way to manage software on Windows machines?
Search no more! Salt has an integrated software package manager for
Windows machines! Install software hosted on the master, anywhere on the
network, including any HTTP, HTTPS, or ftp server.