O SaltStack Config inclui quatro ou mais componentes de arquitetura, incluindo o servidor RaaS, o Master Plugin e dois bancos de dados centrais.
O diagrama a seguir mostra os principais componentes da arquitetura básica do SaltStack Config que são relevantes para a instalação:
Mestres Salt e o Master Plugin
O SaltStack Config conta com a tecnologia Salt, um sistema de automação e gerenciamento de configuração de código aberto.
O mestre Salt é a principal conexão entre o SaltStack Config e o restante dos nós na sua rede (os subordinados). Quando você emite um comando do SaltStack Config (como um trabalho), este segue para o mestre Salt para distribuição aos subordinados direcionados.
O SaltStack Config pode se conectar a um ou vários mestres Salt, conforme necessário no seu sistema. Para que o SaltStack Config se comunique com um Mestre Salt, você deve instalar o Master Plugin no Mestre Salt e aceitar sua chave no SaltStack Config. O Master Plugin permite que o Mestre Salt acesse trabalhos ou processos iniciados pelo SaltStack Config. O Mestre Salt pode acessar arquivos externos e dados de pilares armazenados no banco de dados PostgreSQL.
RaaS
RaaS, que significa "Returner as a Service", é o componente central do SaltStack Config. De fato, quando algumas pessoas se referem ao SaltStack Config propriamente dito, elas frequentemente estão falando sobre o RaaS.
O RaaS fornece endpoints de RPC para receber comandos de gerenciamento da interface de usuário do SaltStack Config, bem como endpoints de controle de RPC para fazer interface com mestres Salt conectados. Toda a comunicação é enviada usando chamadas de API RPC via WebSockets ou HTTP(s).
Interface do usuário do SaltStack Config
A interface de usuário do SaltStack Config é um aplicativo da Web que fornece o front-end da interface gráfica do usuário para o RaaS. Embora o SaltStack Config seja predominantemente operado via API, a interface de usuário se comunica diretamente com a API (RaaS) para permitir o gerenciamento simples de todos os sistemas no seu ambiente. Diferentes espaços de trabalho oferecem aos usuários a capacidade de gerenciar subordinados, usuários, funções, trabalhos e muito mais.
Bancos de dados
Banco de dados PostgreSQL
O RaaS usa um banco de dados PostgreSQL para armazenar dados de subordinados, retornos de trabalhos, dados de eventos, arquivos e dados de pilares, contas de usuário locais e outras configurações para a interface do usuário.
Banco de dados Redis
O RaaS usa um banco de dados Redis para manter determinados tipos de dados no armazenamento temporário, como dados armazenados em cache. Ele também usa o armazenamento de dados temporário para distribuir trabalhos em fila entre trabalhadores em segundo plano.
Para obter mais informações sobre como o Salt funciona, consulte Arquitetura do sistema Salt.