Automation Config включает в себя от четырех и более архитектурных компонентов, в том числе сервер RaaS, подключаемый модуль Master и две центральные базы данных.
На рисунке ниже показаны основные компоненты базовой архитектуры Automation Config, участвующие в процессе установки.
Главные серверы Salt и подключаемый модуль Master
Automation Config выполняется в системе Salt, которая представляет собой систему управления автоматизацией и настройкой с открытым исходным кодом.
Главный сервер Salt является основным связующим звеном между Automation Config и остальными узлами в сети (служебными серверами). Команда, отправляемая из Automation Config (например, задание), поступает на главный сервер Salt для последующего распределения по целевым служебным серверам.
Automation Config может подключаться к одному или нескольким главным серверам Salt, если это необходимо в системе. Для связи Automation Config с главным сервером Salt необходимо установить подключаемый модуль Master на главном сервере Salt и принять его ключ в Automation Config. Подключаемый модуль Master позволяет главному серверу Salt получать доступ к заданиям и процессам, инициированным Automation Config. У главного сервера Salt есть доступ к внешним файлам и данным хранилища pillar, которые хранятся в базе данных PostgreSQL.
RaaS
RaaS (возврат данных как сервис) является основополагающим компонентом Automation Config. По сути, когда некоторые люди говорят о самой системе Automation Config, очень часто подразумевается именно RaaS.
RaaS предоставляет конечные точки RPC для приема управляющих команд из пользовательского интерфейса Automation Config, а также конечные точки управления RPC для взаимодействия с подключенными главными серверами Salt. Вся передача данных осуществляется с помощью вызовов API-интерфейса RPC по протоколу WebSockets или HTTP(s).
Пользовательский интерфейс Automation Config
Пользовательский интерфейс Automation Config — это веб-приложение, которое предоставляет графический пользовательский интерфейс для RaaS. Хотя система Automation Config прежде всего ориентирована на работу через API-интерфейс, пользовательский интерфейс взаимодействует непосредственно с API-интерфейсом (RaaS) и позволяет легко управлять всеми системами в среде. Используя разные рабочие области, можно управлять служебными серверами, пользователями, ролями, заданиями и т. д.
Базы данных
База данных PostgreSQL
RaaS использует базу данных PostgreSQL для хранения данных служебных серверов, возвращаемых результатов заданий, данных о событиях, файлов и данных хранилища pillar, учетных записей локальных пользователей, а также других настроек пользовательского интерфейса.
База данных Redis
RaaS использует базу данных Redis для хранения определенных типов данных, например кэшированных данных, во временном хранилище. Эта служба также использует временное хранилище данных для распределения поставленных в очередь заданий по фоновым рабочим процессам.
Дополнительные сведения о процессе работы Salt см. в разделе Архитектура системы Salt.