Модуль координации (SaltStack)
Модуль координации отвечает за управление и непосредственное применение политик на устройствах. Также осуществляет сбор данных с устройств для инвентаризации.
Работа модуля координации основана на взаимодействии с системой управления конфигурацией и автоматизацией SaltStack, построенной на модели «сервер управления (master) — агент (minion)». Согласно этой модели сервер управления (master) отправляет команды агенту (minion), служебному узлу, который эти команды выполняет, и отправляет свои отчеты о выполнении задач обратно на сервер управления (master).
Связь между сервером управления (master) и агентами (minion) осуществляется по транспортному протоколу ZeroMQ. Канал зашифрован парой открытого и закрытого ключей. Пара ключей генерируется агентом, после чего он отправляет свой открытый ключ серверу управления.
В таблице ниже приведены основные понятия, которые используются при работе с модулем координации.
| Компонент | Описание |
|---|---|
API |
Позволяет создавать скрипты и приложения, которые могут взаимодействовать с модулем координации и выполнять различные задачи, такие как управление узлами, настройка конфигураций, запуск команд и многое другое. Также используется для интеграции модуля координации с другими инструментами и системами управления |
0MQ (ZeroMQ) |
Библиотека для обмена сообщениями, которая используется модулем координации для передачи команд и данных между узлами |
S3-совместимое файловое хранилище |
Хранит конфигурационные файлы, скрипты, шаблоны и другие файлы, которые необходимы для настройки определенных компонентов инфраструктуры. Также может использоваться для хранения общих файлов, которые могут быть доступны для всех узлов в инфраструктуре. Использование файлового сервера позволяет упростить процесс настройки и обновления компонентов инфраструктуры, а также обеспечить единообразие настроек между различными узлами |
Агент |
(Minion) Служебный узел, который управляется с помощью модуля координации. Он может являться физической или виртуальной машиной. Агент подключается к серверу управления и получает от него команды для выполнения различных задач, таких как установка программного обеспечения, настройка конфигурации или мониторинг состояния системы. Агенту присваивается свой уникальный идентификатор, который используется для идентификации узла на сервере управления |
Сервер управления |
(Master) Центральный узел в инфраструктуре управления конфигурацией. Управляет всеми устройствами в инфраструктуре — агентами, отправляет команды на выполнение, хранит конфигурационные данные и предоставляет отчеты о выполнении задач. Также обеспечивает безопасную и защищенную связь между устройствами и сервером управления |
Формула |
Набор файлов и директорий, которые описывают, как установить и настроить определенное приложение или сервис. Формулы позволяют упростить процесс управления конфигурацией, обеспечивая повторяемость и стандартизацию развертывания |
Хранилище Pillar |
Хранит конфиденциальную информацию на сервере управления, например, учетные данные, пароли, ключи доступа и другие секреты, которые не должны быть доступны всем агентам. Эта информация может быть использована в составе формул для настройки узлов, но она будет доступна только для тех узлов, которые имеют права доступа к данным Pillar. Хранилище Pillar также может использоваться для хранения других параметров конфигурации, которые могут быть специфичны для каждого узла в инфраструктуре |
Шина событий |
Используется для обмена информацией о событиях, происходящих на узлах. Если на агенте происходит какое-либо событие, например установка ПО или изменении конфигурации, он отправляет сообщение в шину событий. Сервер управления может подписаться на эти сообщения и реагировать на них, выполняя определенные действия. Также шина событий используется для мониторинга состояния системы и быстрого обнаружения проблем |