SaltStack Config incluye cuatro o más componentes arquitectónicos, incluidos el servidor de RaaS, el complemento principal y dos bases de datos centrales.
En el siguiente diagrama se muestran los componentes principales de la arquitectura básica de SaltStack Config que son relevantes para la instalación:
Maestros de Salt y el complemento principal
SaltStack Config utiliza Salt, un sistema de automatización y administración de la configuración de código abierto.
El maestro de Salt es la conexión principal entre SaltStack Config y el resto de los nodos de la red (los minions). Cuando se emite un comando desde SaltStack Config (como un trabajo), el comando pasa al maestro de Salt para su distribución a los minions de destino.
SaltStack Config pueden conectarse a un maestro de Salt o a tantos maestros como necesite el sistema. Para que SaltStack Config se comunique con un maestro de Salt, ese maestro debe tener instalado el complemento principal y su clave debe aceptarse en SaltStack Config. El complemento principal permite al maestro de Salt acceder a trabajos o procesos iniciados por SaltStack Config, así como a archivos externos y datos del pilar que se almacenan en la base de datos de PostgreSQL.
RaaS
RaaS, que significa "regresador como servicio" (Returner as a Service), es el componente central de SaltStack Config. De hecho, cuando algunas personas dicen SaltStack Config, a menudo se refieren a RaaS.
RaaS proporciona endpoints de RPC para recibir comandos de administración desde la interfaz de usuario de SaltStack Config, así como endpoints de control de RPC para interactuar con los maestros de Salt conectados. Toda la comunicación se envía mediante llamadas de la API de RPC a través de WebSockets o HTTP(s).
Interfaz de usuario de SaltStack Config
La interfaz de usuario de SaltStack Config es una aplicación web que proporciona el front-end de la interfaz de usuario gráfica para RaaS. Aunque SaltStack Config le da prioridad a la API, la interfaz de usuario interactúa directamente con la API (RaaS) para permitir la administración sencilla de todos los sistemas de su entorno. Las distintas áreas de trabajo proporcionan a los usuarios la capacidad de administrar minions, usuarios, funciones, trabajos y mucho más.
Bases de datos
Base de datos de PostgreSQL
RaaS utiliza una base de datos de PostgreSQL para almacenar datos de minions, devoluciones de trabajos, datos de eventos, archivos y datos del pilar, cuentas de usuario locales, así como opciones adicionales para la interfaz de usuario.
Base de datos de Redis
RaaS utiliza una base de datos de Redis para guardar ciertos tipos de datos en un almacenamiento temporal, como datos en caché. También utiliza almacenamiento de datos temporal para distribuir el trabajo en cola a los procesos de trabajo en segundo plano.
Para obtener más información sobre cómo funciona la Salt, consulte Arquitectura del sistema de Salt.