12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- ====================
- Introduction to Salt
- ====================
- .. rubric:: We’re not just talking about NaCl.
- The 30 second summary
- =====================
- Salt is:
- * a configuration management system, capable of maintaining remote nodes
- in defined states (for example, ensuring that specific packages are installed and
- specific services are running)
- * a distributed remote execution system used to execute commands and
- query data on remote nodes, either individually or by arbitrary
- selection criteria
- It was developed in order to bring the best solutions found in the
- world of remote execution together and make them better, faster, and more
- malleable. Salt accomplishes this through its ability to handle large loads of
- information, and not just dozens but hundreds and even thousands of individual
- servers quickly through a simple and manageable interface.
- Simplicity
- ==========
- Providing versatility between massive scale deployments and smaller systems may seem
- daunting, but Salt is very simple to set up and maintain, regardless of the
- size of the project. The architecture of Salt is designed to work with any
- number of servers, from a handful of local network systems to international
- deployments across different data centers. The topology is a simple
- server/client model with the needed functionality built into a single set of
- daemons. While the default configuration will work with little to no
- modification, Salt can be fine tuned to meet specific needs.
- Parallel execution
- ==================
- The core functions of Salt:
- * enable commands to remote systems to be called in parallel rather than serially
- * use a secure and encrypted protocol
- * use the smallest and fastest network payloads possible
- * provide a simple programming interface
- Salt also introduces more granular controls to the realm of remote
- execution, allowing systems to be targeted not just by hostname, but
- also by system properties.
- Builds on proven technology
- ===========================
- Salt takes advantage of a number of technologies and techniques. The
- networking layer is built with the excellent `ZeroMQ`_ networking
- library, so the Salt daemon includes a viable and transparent AMQ
- broker. Salt uses public keys for authentication with the master
- daemon, then uses faster `AES`_ encryption for payload communication;
- authentication and encryption are integral to Salt. Salt takes
- advantage of communication via `msgpack`_, enabling fast and light
- network traffic.
- .. _`ZeroMQ`: http://zeromq.org/
- .. _`msgpack`: http://msgpack.org/
- .. _`AES`: https://en.wikipedia.org/wiki/Advanced_Encryption_Standard
- Python client interface
- =======================
- In order to allow for simple expansion, Salt execution routines can be written
- as plain Python modules. The data collected from Salt executions can be sent
- back to the master server, or to any arbitrary program. Salt can be called from
- a simple Python API, or from the command line, so that Salt can be used to
- execute one-off commands as well as operate as an integral part of a larger
- application.
- Fast, flexible, scalable
- ========================
- The result is a system that can execute commands at high speed on
- target server groups ranging from one to very many servers. Salt is
- very fast, easy to set up, amazingly malleable and provides a single
- remote execution architecture that can manage the diverse
- requirements of any number of servers. The Salt infrastructure
- brings together the best of the remote execution world, amplifies its
- capabilities and expands its range, resulting in a system that is as
- versatile as it is practical, suitable for any network.
- Open
- ====
- Salt is developed under the `Apache 2.0 license`_, and can be used for
- open and proprietary projects. Please submit your expansions back to
- the Salt project so that we can all benefit together as Salt grows.
- Please feel free to sprinkle Salt around your systems and let the
- deliciousness come forth.
- .. _`Apache 2.0 license`: http://www.apache.org/licenses/LICENSE-2.0.html
|