hostprofi.ru
Подобрать хостинг
Термин·буква S

SaltStack

краткое определение

SaltStack (Salt) — система управления конфигурацией и удалённого выполнения команд с архитектурой master-minion. Использует ZeroMQ для быстрой доставки команд на тысячи серверов одновременно.

SaltStack (официальное название — Salt) — инструмент управления конфигурацией и оркестрации инфраструктуры с открытым исходным кодом. Написан на Python, работает по модели master-minion: центральный Salt Master рассылает команды на агенты (Minions), установленные на управляемых серверах. В отличие от Terraform, фокусирующегося на provisioning (создание инфраструктуры), SaltStack управляет состоянием уже существующих серверов: устанавливает пакеты, настраивает файлы конфигурации, управляет службами, запускает команды.

Как работает

Архитектура: Salt Master — центральный сервер. Salt Minion — агент на каждом управляемом хосте. Коммуникация через ZeroMQ — высокопроизводительную асинхронную шину сообщений. ZeroMQ позволяет доставлять команды на 10 000 серверов за секунды — это принципиальное отличие от SSH-based инструментов (Ansible), которые подключаются к серверам последовательно или параллельно, но через медленный SSH.

Конфигурация описывается в Salt States — файлах на YAML + Jinja2. State описывает желаемое состояние системы декларативно: «пакет nginx должен быть установлен, служба nginx запущена, файл /etc/nginx/nginx.conf соответствует шаблону». Salt применяет state и приводит систему к описанному состоянию. Idempotency — повторное применение не вызывает лишних действий, если система уже в нужном состоянии.

Salt Grains — данные о хосте (ОС, версия ядра, IP-адреса, роль сервера), собираемые автоматически и доступные в states как переменные. Salt Pillar — конфиденциальные данные (пароли, ключи API), централизованно хранимые на Master и доступные конкретным Minion по правилам.

Безагентный режим (Salt SSH) — работает без установки Minion, через SSH. Медленнее агентного режима, но удобен для начального provisioning серверов.

История

Salt создал Томас Хэтч (Thomas Hatch) в 2011 году. Компания SaltStack основана в 2012-м для коммерческой поддержки. В ноябре 2020 года SaltStack приобрела VMware. Репозиторий Salt передан под управление Linux Foundation Salt Project в 2021 году. Бесплатная версия остаётся open-source (Apache 2.0). К 2024 году конкуренты — Ansible (Red Hat/IBM), Chef, Puppet.

Сравнение с Ansible

ПараметрSaltStackAnsible
АрхитектураMaster + Minion (агент)Agentless (SSH)
ТранспортZeroMQ (быстрый)SSH (медленнее)
Масштаб10 000+ узлов1000–5000 узлов
Порог входаВыше (Salt Grains, Pillar)Ниже (простой YAML)
Real-timeДа (события через реактор)Нет

На что обращать внимание

SaltStack требует Salt Master — отдельный сервер (VPS) с постоянной доступностью. При падении Master команды не доставляются, но существующие Minions продолжают работу в последнем известном состоянии. Безопасность: порты 4505 и 4506 Salt Master должны быть закрыты через файрвол для внешних подключений. Salt Minion аутентифицируется по ключам — компрометация Master даёт управление всеми серверами. Разграничивайте доступ через Salt ACL (Access Control Lists).

Архитектура SaltStack

SaltStack — система конфигурационного управления и оркестрации. Архитектура: Salt Master + Salt Minion на каждом сервере. Транспорт: ZeroMQ (по умолчанию) или RAET, SSH (agentless режим через salt-ssh). Обмен ключами при подключении нового minion.

States и Grains

States — декларативное описание желаемого состояния системы (YAML+Jinja2). Grains — статические характеристики minion (ОС, IP, RAM). Pillar — секреты и переменные для minion. salt '*' state.apply webserver — применить state ко всем серверам. Top.sls — маппинг серверов на states.

SaltStack vs Ansible vs Puppet

Ansible: agentless, push-модель, проще в начале. SaltStack: агенты (быстрее выполнение), event-driven automation. Puppet: декларативный DSL, для крупных инфраструктур. SaltStack быстрее Ansible при работе с 1000+ серверами. Все три совместимы с CI/CD и Infrastructure as Code.

SaltStack управляет конфигурацией Nginx, PostgreSQL, Docker. В связке с CI/CD: автоматическое применение конфигураций. На Ubuntu и Rocky Linux. Альтернатива Ansible для event-driven автоматизации. systemd-интеграция для управления сервисами.

Другие термины