Separating Master and Minion functionality
It's easy to think of Salt in terms of the following: the Master sends commands to the Minions, the Minions do the work, and then the Minions send the results back to the Master. However, the Master and the Minion are two distinct components that work together in harmony to complete their respective tasks.
It is important to keep in mind that when the Minion is running in a Masterless mode (using salt-call --local
), it behaves as its own Master, and outside of a few specific features (such as salt-key
and runners that make use of local_client
), any feature that is available on the Master is also available on the Minion, using the same configuration options that would appear in the master
file, but in the minion
file instead.
But when running with a Master and one or more Minions, they are two distinct entities. Some module types are available to either the Master or the Minion; there are many more that are only available for that specific service...