Работа с модулем координации (SaltStack)

Модуль координации отвечает за управление и непосредственное применение политик на устройствах. Также осуществляет сбор данных с машин для инвентаризации. Координирование выполняется посредством использования системы SaltStack — платформы с открытым исходным кодом для управления инфраструктурой, которая построена на динамической коммуникационной шине. SaltStack может использоваться для управления конфигурацией для любого набора систем или приложений, для управления данными, для удаленного запуска команд и т.д.

В SaltStack используется модель «мастер-клиент», в рамках которой главный узел Salt Master (далее — Мастер) отправляет команды клиенту — служебному узлу Salt Minion (далее — Миньон), а клиент эти команды выполняет и отправляет свои отчеты о выполнении задач обратно на Мастер.

Связь между Мастером и Миньонами осуществляется по транспортному протоколу ZeroMQ. Канал зашифрован парой открытого и закрытого ключей. Пара ключей генерируется Миньоном, после чего он отправляет свой открытый ключ Мастеру.

В таблице ниже приведены основные понятия, которые используются в системе SaltStack.

Компонент Описание

API

Позволяет создавать скрипты и приложения, которые могут взаимодействовать с SaltStack и выполнять различные задачи, такие как управление узлами, настройка конфигураций, запуск команд и многое другое. Также используется для интеграции SaltStack с другими инструментами и системами управления

0MQ (ZeroMQ)

Библиотека для обмена сообщениями, которая используется в SaltStack для передачи команд и данных между узлами

Мастер (Master)

Центральный узел в инфраструктуре управления конфигурацией Salt. Он управляет всеми устройствами в инфраструктуре — Миньонами, отправляет команды на выполнение, хранит конфигурационные данные и предоставляет отчеты о выполнении задач. Мастер также обеспечивает безопасную и защищенную связь между устройствами и сервером управления

Мастер Мастеров (Master of Masters)

Компонент SaltStack, который управляет несколькими Мастерами в крупных распределенных средах, координирует их работу и обеспечивает безопасность и целостность данных

Миньон (Minion)

Служебный узел, который управляется с помощью Salt. Он может являться физической или виртуальной машиной, контейнером или сетевым устройством. Миньон подключается к Мастеру и получает от него команды для выполнения различных задач, таких как установка программного обеспечения, настройка конфигурации или мониторинг состояния системы. Миньону присваивается свой уникальный идентификатор, который используется для идентификации узла на Мастере

Синдик (Syndic)

Компонент SaltStack, который позволяет управлять несколькими узлами, находящимися в разных сетях или дата-центрах как единым целым. Синдик объединяет несколько Мастеров в единую систему управления, что обеспечивает более высокую отказоустойчивость и масштабируемость. Также позволяет использовать различные стратегии для распределения задач между узлами для повышения эффективность работы системы

Шина событий

Используется для обмена информацией о событиях, происходящих на узлах. Если на Миньоне происходит какое-либо событие, например установка ПО или изменении конфигурации, он отправляет сообщение в шину событий. Мастер может подписаться на эти сообщения и реагировать на них, выполняя определенные действия. Также шина событий используется для мониторинга состояния системы и быстрого обнаружения проблем

Хранилище Pillar

Хранит конфиденциальную информацию на Мастере, например, учетные данные, пароли, ключи доступа и другие секреты, которые не должны быть доступны всем Миньонам. Эта информация может быть использована в составе формул (Formula) для настройки узлов, но она будет доступна только для тех узлов, которые имеют права доступа к Pillar. Хранилище Pillar также может использоваться для хранения других параметров конфигурации, которые могут быть специфичны для каждого узла в инфраструктуре

Файловый сервер

Хранит конфигурационные файлы, скрипты, шаблоны и другие файлы, которые необходимы для настройки определенных компонентов инфраструктуры. Также может использоваться для хранения общих файлов, которые могут быть доступны для всех узлов в инфраструктуре. Использование файлового сервера позволяет упростить процесс настройки и обновления компонентов инфраструктуры, а также обеспечить единообразие настроек между различными узлами