SaltStack Config includes four or more architectural components including the RaaS server, the Master Plugin, and two central databases.

The following diagram shows the primary components of the basic SaltStack Config architecture that are relevant to installation:

An architecture diagram that shows the different components of SaltStack Config
Note: As part of VMware’s initiative to remove problematic terminology, the term Salt master will be replaced with a better term in SaltStack Config and related products and documentation. This terminology update may take a few release cycles before it is fully complete

Salt Masters and the Master Plugin

SaltStack Config is powered by Salt, an open-source configuration management and automation system.

The Salt master is the main connection between SaltStack Config and the rest of the nodes on your network (the minions). When you issue a command from SaltStack Config (such as a job), the command goes to the Salt master for distribution to the targeted minions.

SaltStack Config can connect to one Salt master or many masters as needed in your system. In order for SaltStack Config to communicate with a Salt master, you must install the Master Plugin on the Salt master and accept its key in SaltStack Config. The Master Plugin allows the Salt master to access jobs or processes initiated by SaltStack Config. The Salt Master can access external files and pillar data that are stored on the PostgreSQL database.

The plugin integrates with the existing extension points provided by Salt. For example, job returns are collected using a Salt master-side Salt external job cache, and the RaaS file server uses a Salt fileserver plugin.
Note: You can connect more than one Salt master to SaltStack Config. Each Salt master that connects to SaltStack Config must have the Master Plugin installed

RaaS

RaaS, which stands for Returner as a Service, is the central component in SaltStack Config. In fact, when some people refer to SaltStack Config itself, they are often talking about RaaS.

RaaS provides RPC endpoints to receive management commands from the SaltStack Config user interface, as well as RPC control endpoints to interface with connected Salt masters. All communication is sent using RPC API calls over WebSockets or HTTP(s).

SaltStack Config user interface

The SaltStack Config user interface is a web application that provides the graphical user interface front end for RaaS. Though SaltStack Config is API-first, the user interface interfaces directly with the API (RaaS) to enable simple management of all systems in your environment. Different workspaces provide users with the ability to manage minions, users, roles, jobs, and more.

Databases

PostgreSQL Database

RaaS uses a PostgreSQL database to store minion data, job returns, event data, files and pillar data, local user accounts, and other settings for the user interface.

Redis Database

RaaS uses a Redis database to store certain types of data in temporary storage, such as cached data. It also uses temporary data storage to distribute queued work to background workers.

For more information on how Salt works, see Salt System Architecture.