How does SaltStack work?
SaltStack uses a server-agent communication model to configure and manage its nodes. This means SaltStack needs a master-server (salt-master) and you need to install a salt agent on the target host called salt minions.
Salt is a Python-based configuration management tool that uses a messaging system to facilitate its connectivity with its target nodes or salt minions. This enables Salt to run thousands of simultaneous tasks with its multi-treated design. The master server acts as a central control bus for the clients, which is creating a high-speed, secure, and bi-directional communication layer for your group of systems (minions).
Salt is declarative, which means that it is aware of the state of your infrastructure. SaltStack writes down the state of a server. You can define the state of what your platform should be. SaltStack checks the newly created state and checks which parts of that state is already available. It determines what it needs to do to get to that new state. So instead of running all the tasks of the script again that procedural tools do like Ansible, SaltStack only adjusts the changes necessary to get the new state. This makes SaltStack more efficient and intelligent as other tools.