2014-02-25 00:42:53 +00:00
|
|
|
=============
|
|
|
|
Salt Topology
|
|
|
|
=============
|
2012-07-19 18:04:30 +00:00
|
|
|
|
|
|
|
Salt is based on a powerful, asynchronous, network topology using ZeroMQ. Many
|
2012-10-20 23:10:18 +00:00
|
|
|
ZeroMQ systems are in place to enable communication. The central idea is to
|
|
|
|
have the fastest communication possible.
|
2012-07-19 18:04:30 +00:00
|
|
|
|
|
|
|
Servers
|
|
|
|
=======
|
|
|
|
|
|
|
|
The Salt Master runs 2 network services. First is the ZeroMQ PUB system. This
|
|
|
|
service by default runs on port ``4505`` and can be configured via the
|
|
|
|
``publish_port`` option in the master configuration.
|
|
|
|
|
2013-03-18 19:59:27 +00:00
|
|
|
Second is the ZeroMQ REP system. This is a separate interface used for all
|
2012-07-19 18:04:30 +00:00
|
|
|
bi-directional communication with minions. By default this system binds to
|
|
|
|
port ``4506`` and can be configured via the ``ret_port`` option in the master.
|
|
|
|
|
|
|
|
PUB/SUB
|
|
|
|
=======
|
|
|
|
|
|
|
|
The commands sent out via the salt client are broadcast out to the minions via
|
|
|
|
ZeroMQ PUB/SUB. This is done by allowing the minions to maintain a connection
|
2013-03-18 19:59:27 +00:00
|
|
|
back to the Salt Master and then all connections are informed to download the
|
|
|
|
command data at once. The command data is kept extremely small (usually less
|
2012-10-12 20:04:38 +00:00
|
|
|
than 1K) so it is not a burden on the network.
|
2012-07-19 18:04:30 +00:00
|
|
|
|
|
|
|
Return
|
|
|
|
======
|
|
|
|
|
|
|
|
The PUB/SUB system is a one way communication, so once a publish is sent out
|
2012-10-20 23:10:18 +00:00
|
|
|
the PUB interface on the master has no further communication with the minion.
|
|
|
|
The minion, after running the command, then sends the command's return data
|
2014-12-11 15:51:43 +00:00
|
|
|
back to the master via the ``ret_port``.
|