Скрипт salt-bootstrap
Тема дорожной карты · SaltStack
salt-bootstrap — это официальный shell-скрипт проекта Salt (репозиторий saltstack/salt-bootstrap на GitHub), который устанавливает Salt на любую POSIX-систему одной командой. Скрипт определяет дистрибутив и его версию, подключает нужный пакетный репозиторий и устанавливает миньон, а также может установить мастер. Его ценность заключается в унификации: вместо поддержки отдельных инструкций для Debian, Ubuntu, RHEL и других систем, вы используете один и тот же вызов скрипта в cloud-init, kickstart или шаблоне образа. Это особенно полезно для быстрых стендов и автоматической регистрации новых миньонов.
Как это работает
Скрипт скачивается из официального репозитория (файл bootstrap-salt.sh) и запускается через sh. Без аргументов он устанавливает стабильную версию миньона. Аргументы позволяют задать ветку и версию, например sh bootstrap-salt.sh stable 3008. Поведение скрипта управляется флагами: -M устанавливает salt-master, -N пропускает установку миньона, -X не запускает демоны после установки, -A <адрес> устанавливает адрес мастера в конфигурацию миньона, -i <id> задаёт идентификатор миньона. Под капотом скрипт подключает репозиторий packages.broadcom.com, устанавливает onedir-пакеты и раскладывает конфигурацию, что не отличается от «пакетной» инсталляции и обслуживается обычным пакетным менеджером.
Когда применять
Основной сценарий — автоматическое разворачивание миньонов: блок runcmd в cloud-init, user-data у виртуалок, провижининг в Vagrant или скрипт первичной настройки железа. Один и тот же вызов работает на разных дистрибутивах, что незаменимо в гетерогенном парке. Второй сценарий — учебные и тестовые стенды: поднять мастер и миньон на паре виртуалок за минуту (-M на одной, -A на другой). Когда парк гомогенный и репозитории уже управляются системой конфигурации, прямая установка пакетов из packages.broadcom.com даёт больше контроля — bootstrap там не нужен. В изолированных сетях без доступа в интернет скрипт применим только вместе с локальным зеркалом репозитория.
Типичные ошибки
Первая ошибка — запуск без фиксации версии: «стабильная» ветка со временем меняется, и новые машины получают другой мажор, чем остальной парк; всегда передавайте явную версию (stable 3008). Вторая ошибка — слепой пайп curl | sh из интернета в продакшене: скачайте скрипт, зафиксируйте версию и раскатывайте проверенную копию. Третья ошибка — забытый флаг -A: миньон установлен, но не знает адрес мастера и ищет DNS-имя salt. Четвёртая ошибка — использование bootstrap там, где идёт борьба за идемпотентность: скрипт — инструмент первичной установки, а не средство управления версиями Salt на живом парке; обновления должны идти через пакетный менеджер.
Связанные понятия
Полезные ресурсы
🔤 Английские термины в этой теме
Слова из этой темы, которые русскоязычные часто произносят неверно. Кнопка 🔊 произносит голосом браузера.
- identifier /aɪˈdɛntɪfaɪər/ ударение на «ден» разбор: Как читать код вслух
- scenario /sɪˈnɑːrioʊ/ «синАриоу» разбор: Тестирование: flaky, coverage, mock, fixture, regression
- bare /bɛər/ как *bear* разбор: Метафоры инфраструктуры: bare metal, sidecar, canary, blue-green
- repo /ˈrɛpoʊ/ «репоу» разбор: Английский Git и code review
- result /rɪˈzʌlt/ ударение на второй слог разбор: Behavioral questions и метод STAR
- repository /rɪˈpɒzɪtəri/ ударение на «по», четыре слога, а не «репозитОри» разбор: Где встречается: код, доки, тикеты, созвоны
- command /kəˈmɑːnd/ ударение на второй слог разбор: Английский Linux и терминала