Развёртывание сервера Salt.Box (без доступа к интернету)
В данном разделе приведено описание процесса подготовки, установки и запуска Salt.Box на сервере без доступа к интернету.
Для развёртывания необходимо предварительно подготовить все необходимые Docker-образы и локальные репозитории с SLS-шаблонами на компьютере с доступом к интернету.
Описывается конфигурация Salt.Box, развёртываемая из образов, без настройки режима разработки («dev-режима»).
Подготовка Docker-образов на компьютере с доступом к интернету
В стандартном варианте развёртывания проекта Salt.Box Compose требуется подключение к интернету для загрузки Docker-образов.
Кроме того, интернет-подключение используется для синхронизации с SLS-репозиториями, содержащими файлы состояний («Config Boxes»).
Стандартный запуск Salt.Box
На компьютере с доступом к интернету (далее — «онлайн-хост») выполните установку и запуск Salt.Box согласно основной инструкции.
Файл .env и набор подключённых compose-файлов ДОЛЖНЫ совпадать с конфигурацией, которая будет использоваться на сервере без доступа к интернету (далее — «офлайн-сервер»).
Экспорт Docker-образов
Экспортируйте Docker-образы с онлайн-хоста.
Для этого перейдите в каталог проекта saltbox-compose и выполните скрипт:
./bin/sb-images-export.sh
Данный скрипт поддерживает флаг --overwrite, который перезаписывает уже имеющиеся локальные Docker-образы.
Образы будут сохранены в каталог ./images/
saltbox-compose может быть запущен или остановлен, команда down недопустима.
Подготовка локальных SLS-репозиториев
Подготовка выполняется опционально, если имеются файлы для скачивания в манифесте репозитория.
Необходимые SLS-репозитории должны быть размещены в каталоге ./_local-config-boxes/ или в каталоге, указанном в переменной LOCAL_CONFIG_BOXES_PATH.
Таким образом, необходимо поместить папку с репозиторием в указанный каталог.
Добавление локальных репозиториев
Подготовка выполняется опционально, если имеются файлы для скачивания в манифесте репозитория.
Откройте раздел Репозитории конфигураций в главном меню.
Для каждого из добавляемых репозиториев в веб-интерфейсе Salt.Box:
- Добавьте URL репозитория в виде:
file:///mnt/config-boxes/REPO_NAME,
гдеREPO_NAME— имя локального каталога репозитория - Активируйте репозиторий
- Нажмите кнопку
Sync - Дождитесь окончания синхронизации
Для проверки успешной синхронизации файлов выполните скрипт:
sudo ./bin/sb-exec.sh salt-run fileserver.file_list
Подготовка данных для переноса на офлайн-сервер
Для переноса необходимо скопировать каталог saltbox-compose/ целиком, включая:
images/— экспортированные Docker-образы_local-config-boxes/— локальные Config Boxes_sshfs-storage/— при использовании sshfs-файлов- каталоги, указанные в переменных
_UPDATE_AND_RUN_EXTRA_*(каталоги подключаемых модулей, например,
saltbox-metric-compose/,
saltbox-inventory-compose/,
saltbox-scheduler-compose/)
Развёртывание Salt.Box на офлайн-сервере
Импорт Docker-образов
Скопируйте каталог saltbox-compose/, включая каталог images/, на целевой офлайн-сервер.
Если некоторые модули подключены с помощью переменных окружения _UPDATE_AND_RUN_EXTRA_*, необходимо скопировать также соответствующие каталоги.
Измените текущий рабочий каталог на saltbox-compose на офлайн-сервере.
Импортируйте Docker-образы:
./bin/sb-images-import.sh
Запуск Salt.Box без доступа к интернету
Запустите стартовый скрипт:
sudo ./bin/update_and_run.sh --no-pull
Флаг --no-pull отключает попытки загрузки образов из удалённых реестров и заставляет Docker compose использовать исключительно локальные образы.
Настройка локальных репозиториев на офлайн-сервере
Откройте раздел Репозитории конфигураций в главном меню.
Для каждого из добавляемых репозиториев в веб-интерфейсе Salt.Box:
- Добавьте URL репозитория в виде:
file:///mnt/config-boxes/REPO_NAME,
гдеREPO_NAME— имя локального каталога репозитория - Активируйте репозиторий
- Нажмите кнопку Sync.
- Дождитесь окончания синхронизации
Обновление AUX-файлов при изменении sshfs_files
В дальнейшем, когда разделы манифеста sshfs_files SLS-репозиториев будут изменены:
- Выполните синхронизацию AUX-файлов на онлайн-хосте
- Скопируйте обновлённые AUX-файлы и соответствующие файлы с контрольными суммами из каталога, указанного в переменной
SSHFS_STORAGE_PATH(по умолчанию./_sshfs-storage/каталога проектаsaltbox-compose) - Перенесите файлы в тот же каталог офлайн-сервера
Заключение
После выполнения указанных шагов офлайн-экземпляр Salt.Box будет полностью работоспособен без необходимости подключения к интернету и сможет использовать локальные SLS-репозитории и локальные Docker-образы.