Saltstack overview
The Salt modules manage all of the remote execution and state management behavior of Salt. The modules can be separated into six groups:
- Execution modules are the workhorse for Salt's functionality. The execution modules represent the functions that are available for direct execution from the remote execution engine. These modules contain the specific cross platform information used by Salt to manage portability, and constitute the core api of system level functions used by Salt systems.[8]
- State modules are the components that make up the backend for the Salt configuration management system. These modules execute the code needed to enforce, set up or change the configuration of a target system. Like other modules, more states become available when they are added to the states modules.
- Grains constitute a system for detecting static information about a system and storing it in RAM for rapid gathering.[9]
- Renderer modules are used to render the information passed to the Salt state system. The renderer system is what makes it possible to represent Salt's configuration management data in any serializable format.[10]
- Returners: the remote execution calls made by Salt are detached from the calling system; this allows the return information generated by the remote execution to be returned to an arbitrary location. Management of arbitrary return locations is managed by the Returner Modules.[11]
- Runners are master side convenience applications executed by the salt-run command.[12]