L'architettura di SaltStack Config include quattro o più componenti, tra cui il server RaaS, il plug-in Master e due database centrali.
Il seguente diagramma mostra i componenti principali dell'architettura di SaltStack Config di base pertinenti per l'installazione:
![Un diagramma dell'architettura che mostra i diversi componenti di SaltStack Config](images/GUID-E61BA02E-6C3D-43A5-8B3C-356480393BA1-low.png)
Salt Master e plug-in Master
SaltStack Config è basato su Salt, un sistema di gestione e automazione della configurazione open source.
Il Salt Master è la connessione principale tra SaltStack Config e il resto dei nodi nella rete (i minion). Quando si esegue un comando da SaltStack Config (ad esempio un processo), il comando passa al Salt Master per la distribuzione ai minion di destinazione.
SaltStack Config può connettersi a un Salt Master o a molti Master in base alle esigenze nel sistema. Affinché SaltStack Config possa comunicare con un Salt Master, in tale Master deve essere installato il plug-in Master e la relativa chiave deve essere accettata su SaltStack Config. Il plug-in Master consente al Salt Master di accedere ai processi avviati da SaltStack Config, nonché ai file esterni e ai dati del pillar archiviati nel database PostgreSQL.
RaaS
RaaS, acronimo di Returner as a Service, è il componente centrale in SaltStack Config. Alcune persone si riferiscono infatti a RaaS chiamandolo SaltStack Config.
RaaS fornisce endpoint RPC per ricevere comandi di gestione dall'interfaccia utente di SaltStack Config, nonché endpoint di controllo RPC per interfacciarsi con i Salt Master connessi. Tutte le comunicazioni vengono inviate tramite chiamate API RPC su WebSocket o HTTP(S).
Interfaccia utente di SaltStack Config
L'interfaccia utente di SaltStack Config è un'applicazione Web che fornisce il front-end dell'interfaccia utente grafica per RaaS. Sebbene SaltStack Config dia la precedenza all'API, l'interfaccia utente comunica direttamente con l'API (RaaS) per abilitare la gestione semplice di tutti i sistemi nell'ambiente. Le diverse aree di lavoro consentono di gestire minion, utenti, ruoli, processi e molto altro.
Database
Database PostgreSQL
RaaS utilizza un database PostgreSQL per archiviare i dati dei minion, le restituzioni dei processi, i dati degli eventi, i file e i dati del pillar, gli account utente locali e le impostazioni aggiuntive per l'interfaccia utente.
Database Redis
RaaS utilizza un database Redis per archiviare determinati tipi di dati nell'archivio temporaneo, ad esempio i dati memorizzati nella cache. Utilizza inoltre l'archiviazione temporanea dei dati per distribuire il lavoro in coda ai worker in background.
Per ulteriori informazioni sul funzionamento di Salta, vedere Architettura del sistema Salt.