Like Puppet, Chef, and Ansible, Salt is an open source server management and automation solution with commercial, officially supported options. Based on command-line-driven server and client services and utilities, Salt is primarily focused on Linux and Unix server management, though it offers significant Windows management capabilities as well. While Salt may look simple on its face, it's surprisingly powerful and extensible, and it has been designed to handle extremely large numbers of clients.
Salt uses a push method of communication with clients by default, though there's also a means to use SSH rather than locally installed clients. Using the default push method, the clients don't actively check in with a master server; rather, the master server reaches out to control or modify each client based on commands issued manually or through scheduling. But again, Salt can also operate in the other direction, with clients querying the master for updates. Salt functions asynchronously, and as such, it's very fast. It also incorporates an asynchronous file server for file deployments.
[ Review: Ansible orchestration is a veteran Unix admin's dream | Review: Chef cooks up configuration management | Review: Puppet Enterprise 3.0 pulls more strings | Puppet or Chef: The configuration management dilemma | Subscribe to InfoWorld's Data Center newsletter to stay on top of the latest developments. ]
Salt can be distilled into a few simple core concepts. You can issue raw commands to clients or groups of clients, or you can create YAML configuration templates called "states" to control the behavior of those clients. Further, you can extend and abstract functions and parameters through the use of extended templates called "pillars." All of this is combined with the capability to use a few different scripting interpreters to extend functionality through the use of Python or PyDSL (Python Domain Specific Language).
To continue reading this article register now