SaltStack Config включает в себя от четырех и более архитектурных компонентов, в том числе сервер RaaS, подключаемый модуль Master и две центральные базы данных.

Примечание: В рамках инициативы корпорации VMware по удалению сомнительных терминов термин «Salt master» (главный сервер Salt) будет заменен на более подходящий в системе SaltStack Config, в связанных продуктах и документации. Для обновления терминологии может потребоваться несколько этапов, прежде чем этот процесс будет полностью завершен.

На рисунке ниже показаны основные компоненты базовой архитектуры SaltStack Config, участвующие в процессе установки.

Главные серверы Salt и подключаемый модуль Master

SaltStack Config выполняется в системе Salt, которая представляет собой систему управления автоматизацией и настройкой с открытым исходным кодом. Если вы плохо знаете систему Salt и не представляете, как она работает, ознакомьтесь с архитектурой системы Salt.

Главный сервер Salt является основным связующим звеном между SaltStack Config и остальными узлами в сети (служебными серверами). Команда, отправляемая из SaltStack Config (например, задание), поступает на главный сервер Salt для последующего распределения по целевым служебным серверам.

SaltStack Config может подключаться к одному или нескольким главным серверам Salt, если это необходимо в системе. Чтобы система SaltStack Config могла взаимодействовать с главным сервером Salt, на этом главном сервере должен быть установлен подключаемый модуль Master, а его ключ должен быть принят в SaltStack Config. Подключаемый модуль Master позволяет главному серверу Salt получать доступ к заданиям или процессам, инициированным системой SaltStack Config, а также к внешним файлам и данным хранилища pillar, которые хранятся в базе данных PostgreSQL.

Подключаемый модуль интегрируется с существующими точками расширения, которые предоставляет Salt. Например, сбор возвращаемых результатов заданий выполняется с помощью внешнего кэша заданий Salt на стороне главного сервера Salt, а файловый сервер RaaS использует подключаемый модуль файлового сервера Salt.

Примечание: К SaltStack Config можно подключить несколько главных серверов Salt. На каждом главном сервере Salt, который подключается к SaltStack Config, требуется установить подключаемый модуль Master.

RaaS

RaaS (возврат данных как сервис) является основополагающим компонентом SaltStack Config. По сути, когда некоторые люди говорят о самой системе SaltStack Config, очень часто подразумевается именно RaaS.

RaaS предоставляет конечные точки RPC для приема управляющих команд из пользовательского интерфейса SaltStack Config, а также конечные точки управления RPC для взаимодействия с подключенными главными серверами Salt. Вся передача данных осуществляется с помощью вызовов API-интерфейса RPC по протоколу WebSockets или HTTP(s).

Пользовательский интерфейс SaltStack Config

Пользовательский интерфейс SaltStack Config — это веб-приложение, которое предоставляет графический пользовательский интерфейс для RaaS. Хотя система SaltStack Config прежде всего ориентирована на работу через API-интерфейс, пользовательский интерфейс взаимодействует непосредственно с API-интерфейсом (RaaS) и позволяет легко управлять всеми системами в среде. Используя разные рабочие области, можно управлять служебными серверами, пользователями, ролями, заданиями и т. д.

База данных PostgreSQL

RaaS использует базу данных PostgreSQL для хранения данных служебных серверов, возвращаемых результатов заданий, данных о событиях, файлов и данных хранилища pillar, учетных записей локальных пользователей, а также дополнительных настроек для пользовательского интерфейса.

База данных Redis

RaaS использует базу данных Redis для хранения определенных типов данных, например кэшированных данных, во временном хранилище. Эта служба также использует временное хранилище данных для распределения поставленных в очередь заданий по фоновым рабочим процессам.