Перейти к основному содержимому
Версия: Новая

Развёртывание сервера 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:

  1. Добавьте URL репозитория в виде:
    file:///mnt/config-boxes/REPO_NAME,
    где REPO_NAME — имя локального каталога репозитория
  2. Активируйте репозиторий
  3. Нажмите кнопку Sync
  4. Дождитесь окончания синхронизации

Для проверки успешной синхронизации файлов выполните скрипт:

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:

  1. Добавьте URL репозитория в виде:
    file:///mnt/config-boxes/REPO_NAME,
    где REPO_NAME — имя локального каталога репозитория
  2. Активируйте репозиторий
  3. Нажмите кнопку Sync.
  4. Дождитесь окончания синхронизации

Обновление AUX-файлов при изменении sshfs_files

В дальнейшем, когда разделы манифеста sshfs_files SLS-репозиториев будут изменены:

  1. Выполните синхронизацию AUX-файлов на онлайн-хосте
  2. Скопируйте обновлённые AUX-файлы и соответствующие файлы с контрольными суммами из каталога, указанного в переменной SSHFS_STORAGE_PATH (по умолчанию ./_sshfs-storage/ каталога проекта saltbox-compose)
  3. Перенесите файлы в тот же каталог офлайн-сервера

Заключение

После выполнения указанных шагов офлайн-экземпляр Salt.Box будет полностью работоспособен без необходимости подключения к интернету и сможет использовать локальные SLS-репозитории и локальные Docker-образы.