Установка и настройка
Тема дорожной карты · 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 — когда это имя не резолвится, сервис молча уходит в бесконечные ретраи.
Связанные понятия
Полезные ресурсы
🔤 Английские термины в этой теме
Слова из этой темы, которые русскоязычные часто произносят неверно. Кнопка 🔊 произносит голосом браузера.
- interpreter /ɪnˈtɜːrprɪtər/ ударение на «тёр» разбор: Ошибки терминала: permission denied, no such file, segfault
- conflict /ˈkɒnflɪkt/ существительное, ударение на первый слог разбор: Ветки и слияния: rebase, squash, cherry-pick, conflict
- repo /ˈrɛpoʊ/ «репоу» разбор: Английский Git и code review
- repository /rɪˈpɒzɪtəri/ ударение на «по», четыре слога, а не «репозитОри» разбор: Где встречается: код, доки, тикеты, созвоны
- infrastructure /ˈɪnfrəstrʌktʃər/ ударение на первый слог разбор: Немые буквы и ударение: cache, queue, suite, height