Установка и настройка
Тема дорожной карты · SaltStack
Установка Salt в классической схеме — это два компонента: демон salt-master на управляющем узле и агент salt-minion на каждой управляемой машине. Оба распространяются в виде onedir-пакетов со встроенным интерпретатором Python, поэтому не конфликтуют с системным Python и не тянут за собой зависимости дистрибутива. Официальный источник пакетов — репозиторий packages.broadcom.com (прежний repo.saltproject.io больше не используется). Важно понимать с самого начала: рабочая инсталляция — это не только «поставить пакеты». Нужно открыть порты мастера, прописать его адрес на миньонах и принять их ключи командой salt-key — пока не выполнены все три шага, управление парком не заработает.
Как это работает
Типовой сценарий на Debian/Ubuntu или RHEL-подобных системах: подключаете репозиторий Broadcom для нужной ветки (например, 3008 LTS), затем ставите salt-master на управляющий узел и salt-minion на остальные машины. На миньоне в /etc/salt/minion или в drop-in-файле внутри minion.d/ указываете адрес мастера — master: salt.example.com — и запускаете сервис: systemctl enable --now salt-minion. При первом старте миньон генерирует пару RSA-ключей и отправляет публичный ключ мастеру; на мастере вы принимаете его командой salt-key -a <id> (или все сразу через salt-key -A). Проверка связности — salt '*' test.ping. Мастер слушает два порта: 4505 (publish, рассылка команд) и 4506 (request/return, ответы миньонов) — их нужно открыть в файрволе. Миньонам входящие порты не нужны: они сами устанавливают соединение с мастером.
Когда применять
Пакеты из packages.broadcom.com — вариант по умолчанию для постоянной инфраструктуры: предсказуемые версии, systemd-юниты из коробки, штатные обновления через пакетный менеджер. Скрипт salt-bootstrap удобнее, когда парк гетерогенный (разные дистрибутивы) или миньоны разворачиваются автоматически из cloud-init и золотых образов: один скрипт сам определяет ОС и ставит подходящие пакеты. Если агент поставить нельзя вовсе — на сетевое оборудование или хосты с жёсткими ограничениями — используйте agentless-режим salt-ssh либо proxy minions. Для локальных экспериментов и одиночных серверов мастер не обязателен: salt-call --local применяет состояния прямо на машине в masterless-режиме, и это же удобный способ отлаживать SLS-файлы без полноценного стенда.
Типичные ошибки
Самая частая — забытые ключи: миньон запущен, но test.ping молчит, потому что ключ висит в списке Unaccepted (проверяется через salt-key -L). Вторая — закрытые порты 4505/4506 на мастере: миньон бесконечно пытается подключиться, а в логах только таймауты. Третья — смешение источников пакетов: в репозиториях дистрибутивов встречаются устаревшие сборки Salt, и парк расползается по версиям; ставьте всё из одного репозитория Broadcom и фиксируйте мажорную ветку. Помните и про порядок обновления: мастер не должен быть старее миньонов. Наконец, если опция master: не задана, миньон ищет мастера по DNS-имени salt — когда это имя не резолвится, сервис молча уходит в бесконечные ретраи.
Связанные понятия
Полезные ресурсы
Проверить знания (2)
Загрузка вопросов…