SaltStack Config inclut au moins quatre composants architecturaux, notamment le serveur RaaS, le plug-in master et deux bases de données centrales.
Le diagramme suivant présente les principaux composants de l'architecture SaltStack Config de base qui sont pertinents pour l'installation :
Masters Salt et plug-in master
SaltStack Config est optimisé par Salt, un système de gestion et d'automatisation de configuration open source. Si vous découvrez Salt et que vous ne connaissez pas son fonctionnement, reportez-vous à la section Architecture du système Salt.
Le master Salt constitue la connexion principale entre SaltStack Config et le reste des nœuds sur votre réseau (les serviteurs). Lorsque vous émettez une commande depuis SaltStack Config (telle qu'une tâche), la commande passe au master Salt pour distribution aux serviteurs ciblés.
SaltStack Config peut se connecter à un master Salt ou à de nombreux masters selon les besoins de votre système. Pour que SaltStack Config communique avec un master Salt, le plug-in master doit être installé sur ce master et sa clé doit être acceptée sur SaltStack Config. Le plug-in master permet au master Salt d'accéder aux tâches ou aux processus initiés par SaltStack Config ainsi qu'aux fichiers externes et aux données de pilier qui sont stockés sur la base de données PostgreSQL.
Le plug-in s'intègre aux points d'extension existants fournis par Salt. Par exemple, les retours de tâche sont collectés à l'aide d'un cache de tâche externe Salt côté master Salt, et le serveur de fichiers RaaS utilise un plug-in de serveur de fichiers Salt.
RaaS
RaaS (Returner as a Service) est le composant central de SaltStack Config. En fait, lorsque des personnes font référence à SaltStack Config, elles parlent souvent de RaaS.
RaaS fournit des points de terminaison RPC pour recevoir des commandes de gestion de l'interface utilisateur de SaltStack Config, ainsi que des points de terminaison de contrôle RPC pour l'interface avec des masters Salt connectés. Toutes les communications sont envoyées à l'aide d'appels d'API RPC sur WebSockets ou HTTP(s).
Interface utilisateur de SaltStack Config
L'interface utilisateur de SaltStack Config est une application Web qui fournit l'interface utilisateur graphique frontale pour RaaS. Bien que SaltStack Config soit principalement axé API, l'interface utilisateur est en interaction directe avec l'API (RaaS) pour permettre une gestion simple de tous les systèmes de votre environnement. Différents espaces de travail permettent aux utilisateurs de gérer des serviteurs, des utilisateurs, des rôles, des tâches, etc.
Base de données PostgreSQL
RaaS utilise une base de données PostgreSQL pour stocker des données de serviteur, des retours de tâche, des données d'événements, des fichiers et des données de Pillar, des comptes d'utilisateurs locaux, ainsi que des paramètres supplémentaires pour l'interface utilisateur.
Base de données Redis
RaaS utilise une base de données Redis pour stocker certains types de données dans un stockage temporaire, comme les données mises en cache. Il utilise également le stockage de données temporaire pour distribuer le travail mis en file d'attente aux nœuds worker en arrière-plan.