Salt is a remote execution and configuration management tool.
Salt is designed to be secure using AES encryption and public-key authentication; incredibly scalable using an advanced ZeroMQ topology; fast and efficient using msgpack; and extensible using small and simple Python modules.
Read the Salt overview for a more thorough description.
The quickest way to see Salt in action is to run a command on a minion host from the master host. This is widely known as remote execution — executing commands on remote hosts.
Now that you have the basics out of the way, learn to use Salt to configure your servers. This is widely known as configuration management — installing packages, configuring users and services, and much more.
Setting up and using Salt is a simple task but its capabilities run much, much deeper. Gaining a better understanding of how Salt works will allow you to truly make it work for you.
The components of Salt
Targeting is specifying which minions should execute commands or manage server configuration.
Remote execution is the core functionality of Salt. Running pre-defined or arbitrary commands on remote hosts.
Salt modules are the core of remote execution. They provide functionality such as installing a package, restarting a service, running a remote command, transferring a file — and the list goes on.
Salt returners allow saving minion responses in various datastores or to various locations in addition to display at the CLI.
Building on the remote execution core is a robust and flexible config management framework. Execution happens on the minions allowing effortless, simultaneous configuration of thousands of hosts.
Express the state of a host using small, easy to read, easy to understand configuration files. No programming required (unless you want to).
Write state configuration files in the language, templating engine, or file type of your choice. The world doesn't need yet another DSL.
Salt is many splendid things.
Running Salt without root Firewall settings and Salt