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

Развёртывание сервера Salt.Box

В данном разделе описаны процессы подготовки, установки и запуска Salt.Box на сервере с доступом к интернету.

Рассмотрены варианты развёртывания:

Дополнительные действия, необходимые для развёртывания Salt.Box на сервере без доступа к интернету, описаны в разделе Развёртывание сервера Salt.Box (без доступа к интернету).

предупреждение

Если Вы выполняете развёртывание сервера Salt.Box на виртуальной машине, убедитесь, что процессор виртуальной машины поддерживает расширения набора команд avx и avx2. Данные расширения требуются для работы MongoDB версии 5.0 и выше.

Проверить наличие поддержки можно следующей командой:

cat /proc/cpuinfo

В выводе команды в блоке flags должны быть указаны флаги avx и avx2.


предупреждение

Для развёртывания рабочей версии продукта рекомендуется установить режим обработки перерасхода памяти с помощью команд:

sudo sh -c "echo 'vm.overcommit_memory=1' > /etc/sysctl.d/saltbox.conf"
sudo sysctl -p /etc/sysctl.d/saltbox.conf

Значение vm.overcommit_memory=1 является требованием Redis.

Быстрый старт Salt.Box

Утилита установки install_saltbox.py

Утилита установки install_saltbox.py позволяет загрузить необходимые файлы, установить и запустить систему Salt.Box.

Получите файл install_saltbox.py и запустите его в каталоге, где вы предпочитаете хранить файлы, связанные с Docker-проектом Salt.Box Compose. Используйте флаг -h или --help для просмотра опций утилиты установки.

Синтаксис утилиты install_saltbox.py

install_saltbox.py [-h] [--admin ADMIN] [--compose-ref COMPOSE_REF] [--cleanup] [--explicit-secret EXPLICIT_SECRET] [--host HOST] [--host-is-name] [--keep-image-tags] [--port PORT] [-n] [--no-progress] [-s] [-u] [-v] [OVERRIDE ...]

АргументыОписание
Позиционные аргументы
OVERRIDEДополнительные значения для включения в dotenv в формате NAME='VAL'.
Опции
-h--helpПоказать это справочное сообщение и выйти.
--admin ADMINЛогин администратора Salt.Box.
--compose-ref COMPOSE_REFСсылка на Git для получения Salt.Box Compose, RELEASE для поиска последнего тега релиза, RELEASE по умолчанию.
--cleanupУдаление возможно существующих экземпляров Salt.Box с тем же COMPOSE_PROJECT_NAME.
ВНИМАНИЕ: ВОЗМОЖНА ПОТЕРЯ ДАННЫХ!
--explicit-secret EXPLICIT_SECRETУстановить секретное значение явно в формате NAME=VALUE,
используйте saltbox_admin_password=VALUE, чтобы установить пароль администратора Salt.Box.
Может быть указано несколько раз.
--host HOSTИмя хоста или реальный адрес для размещения, по умолчанию saltbox.local.
--host-is-nameПринудительное использование SSL-сертификата для DNS-имени, даже если host выглядит как IP-адрес.
--keep-image-tagsНе менять теги образов для разработки.
--port PORTПорт для обслуживания HTTPS-соединений, по умолчанию 443.
-n--non-interactiveНе запрашивать ввод параметров, использовать значения по умолчанию.
--no-progressНе отображать ход загрузки.
-s--skip-checkНе проверять установку Docker перед запуском.
-u--skip-runВыполнить только подготовку (без установки Salt.Box).
-v--verboseВывод дополнительной информации.

После завершения загрузки и настройки утилита install_saltbox.py запустит скрипт автоматической установки update_and_run.sh.

Пример использования утилиты install_saltbox.py

Строка запуска утилиты, рассматриваемая в данном примере:

./install_saltbox.py --addons ALL --compose-ref=dev --cleanup --explicit-secret=saltbox_admin_password=k2BzQ2sMCi3g --host=176.109.74.142 --no-progress --non-interactive --port=443 --admin master

Пояснение заданных опций:

  • --compose-ref=dev
    будет установлена версия Salt.Box с тегом dev

  • --addons ALL
    будут установлены все дополнительные модули, поставляемые в дистрибутиве Salt.Box

  • --cleanup
    будут удалены существующие экземпляры системы с тем же COMPOSE_PROJECT_NAME, если они существуют (имя проекта по умолчанию — saltbox — задано в файле base.env)

  • --explicit-secret=saltbox_admin_password=k2BzQ2sMCi3g
    пароль администратора системы

  • --host=176.109.74.142
    IP-адрес хоста, на котором будет доступен веб-интерфейс системы

  • --no-progress
    загрузка будет проходить в «тихом» режиме, без отображения статуса

  • --non-interactive
    при установке системы будет использоваться явно заданные аргументы утилиты и значения по умолчанию, опущенные при вызове параметры запрашиваться не будут

  • --port=443
    веб-интерфейс системы будет доступен на порту 443/TCP по протоколу HTTPS

  • --admin master
    учётная запись администратора системы будет иметь имя master

Утилита install_saltbox.py сформирует файл override.env следующего вида:

./override.env
FRONTEND_IMAGE_TAG='dev'
GATEWAY_IMAGE_TAG='dev'
KEYCLOAK_IMAGE_TAG='dev'
MAKE_CERTS_IMAGE_TAG='dev'
MONGODB_IMAGE_TAG='dev'
NGINX_IMAGE_TAG='dev'
OPA_IMAGE_TAG='dev'
PROXY_IMAGE_TAG='dev'
REDIS_IMAGE_TAG='dev'
SALT_MASTER_IMAGE_TAG='dev'
SSHFS_IMAGE_TAG='dev'
SCHEDULER_IMAGE_TAG='dev'
METRIC_IMAGE_TAG='dev'
INVENTORY_IMAGE_TAG='dev'
SALTBOX_ADMIN_USERNAME='master'
WEB_SERVER_OUTER_SOCKET='176.109.74.142:443'
WEB_SERVER_SSL_ALT_NAMES_IP='127.0.0.1,176.109.74.142'
COMPOSE_FILE="${COMPOSE_FILE}:../saltbox-scheduler-compose/compose.yaml"
COMPOSE_FILE="${COMPOSE_FILE}:../saltbox-metric-compose/compose.yaml"
COMPOSE_FILE="${COMPOSE_FILE}:../saltbox-inventory-compose/compose.yaml"
_UPDATE_AND_RUN_EXTRA_ENV_FILES='../saltbox-scheduler-compose/.env,../saltbox-metric-compose/.env,../saltbox-inventory-compose/.env'
_UPDATE_AND_RUN_EXTRA_SECRETS_CONFS='../saltbox-scheduler-compose/secrets.json,../saltbox-inventory-compose/secrets.json'

Скрипт автоматической установки update_and_run.sh

Находясь в каталоге проекта, запустите скрипт автоматической установки:

sudo ./bin/update_and_run.sh

Скрипт автоматической установки:

  • выполняет слияние файлов base.env и override.env (если файл существует) в файл конфигурации .env;
  • с помощью утилиты ./bin/make_secrets.py создаёт набор файлов с секретами в подкаталоге проекта ./secrets/;
  • выполняет обновление образов;
  • выводит учетные данные администратора по умолчанию;
  • с помощью скрипта ./bin/sb-compose.sh запускает экземпляр Salt.Box.

Используйте файл override.env для переопределения значений по умолчанию из файла base.env.
Используйте флаг -h или --help для просмотра опций скрипта автоматической установки.

Синтаксис скрипта update_and_run.sh

./bin/update_and_run.sh [-d|--detach] [-h|--help] [SERVICE]...

АргументыОписание
Позиционные аргументы
SERVICE
...
Опции
-d--detachОтключить Docker Compose после запуска.
--drop-dataУдалить все тома перед запуском!
-f--forceПерезаписывать без подтверждения.
-h--helpПоказать это справочное сообщение и выйти.
-l--loginПопытаться войти в регистр Docker.
-n--no-pullИзбегать обновления текущего репозитория и образов из Интернета.
--no-git-pullНе загружать текущий репозиторий, даже если это возможно.
--no-image-pullНе загружать более новые образы из реестра.
--no-progressСкрыть индикаторы выполнения.
--no-rootНе использовать sudo, запускать от имени текущего пользователя.
--only-envОбъединить файлы base.env и override.env и выйти.
--only-updateОбъединить файлы base.env и override.env и обновить образы.
-w--watchВключить отслеживание Docker Compose для разработки.

Последний флаг --only-* переопределяет предыдущий.

Пошаговая установка Salt.Box

Загрузка проекта и подготовка к установке

  1. Загрузите актуальный релиз Salt.Box Compose по ссылке https://dev.saltbox.pro/saltbox/saltbox-compose/-/releases и разархивируйте его.

  2. Войдите в каталог проекта.

  3. В корневом каталоге проекта создайте файл override.env.
    По необходимости в файле override.env переопределите переменные файла base.env, если это требуется пользователю для корректной работы Salt.Box в его сетевой среде

    После настройки файла override.env выполните:

    ./bin/update_and_run.sh --only-env

    Файлы base.env и override.env будут объединены в файл .env.

    к сведению

    Далее приведены описания некоторых переменных файла base.env, переопределение которых может потребоваться пользователю для корректной работы Salt.Box в его сетевой среде.

    В большинстве случаев все переменные в файле base.env, поставляемом в составе релиза, корректно настроены для случая, когда Salt.Box устанавливается на localhost.

    Модификация файла base.env необходима также для установки дополнительных модулей одновременно с развёртыванием базовой части системы — Salt.Config.Box.
    Инструкцию по установке дополнительных модулей смотрите в разделе Подключение дополнительных модулей.

    1. Если Вы планируете развёртывание Salt.Box на виртуальной машине или на хосте, отличном от localhost, то в файле override.env должны быть переопределены переменные, значением которых по умолчанию является 'localhost':

      Порт хост-системы, которому будет сопоставлен порт контейнера Docker, обслуживающего веб-интерфейс Salt.Box, например:

      WEB_SERVER_PORT=4443

      Переменной WEB_SERVER_OUTER_SOCKET должен быть присвоен сетевой адрес или сетевое имя хоста, на котором веб-интерфейс Salt.Box будет доступен пользователю. Опционально может быть указано также номер порта:

      WEB_SERVER_OUTER_SOCKET=<HOST> | <HOST>:<PORT>
      примечание

      Если развёртывание Salt.Box производится на виртуальной машине, переменной WEB_SERVER_OUTER_SOCKET должен быть присвоен сетевой адрес её интерфейса в хостовой системе.

      Если доступ к Salt.Box будет осуществляться без использования обратного прокси-сервера, то в WEB_SERVER_OUTER_SOCKET должен быть указан тот же порт, что и в WEB_SERVER_PORT. Если порт не указан явно, будет использовано значение по умолчанию для протокола (80/TCP для HTTP, 443/TCP для HTTPS).

    2. Сокет сервера Redis (для подключения к нему мастера).
      Для подключения внешних мастеров следует указать 0.0.0.0:6379 (все сетевые интерфейсы) либо указать адрес одного из сетевых интерфейсов:

      REDIS_SALT_EXPOSE_SOCKET=<IP_ADDRESS>:6379
    3. Теги образов, с которых осуществляется развёртывание Salt.Box:

      CORE_IMAGE_TAG=<vX.Y.Z>
      FRONTEND_IMAGE_TAG=<vX.Y.Z>
      GATEWAY_IMAGE_TAG=<vX.Y.Z>
      KEYCLOAK_IMAGE_TAG=<vX.Y.Z>
      MAKE_CERTS_IMAGE_TAG=<vX.Y.Z>
      MONGODB_IMAGE_TAG=<vX.Y.Z>
      NGINX_IMAGE_TAG=<vX.Y.Z>
      OPA_IMAGE_TAG=<vX.Y.Z>
      PROXY_IMAGE_TAG=<vX.Y.Z>
      REDIS_IMAGE_TAG=<vX.Y.Z>
      SALT_MASTER_IMAGE_TAG=<vX.Y.Z>
      SSHFS_IMAGE_TAG=<vX.Y.Z>

      где <vX.Y.Z> — номер версии программного комплекса Salt.Box

    4. Время ожидания остановки контейнера до принудительной остановки:

      STOP_GRACE_PERIOD=5s

      Уменьшение данного значения может ускорить остановку, но повышает риски потери вре́менных данных.

    5. Уровень журналирования контейнера главного мастера SaltStack:

      SALT_MASTER_LOG_LEVEL='warning'
      SALT_MINION_LOG_LEVEL='warning'

      Обозначения уровней журналирования:

      УровеньЧисловое значениеОписание
      critical50Критические ошибки
      error40Ошибки
      warning30Предупреждения
      info20Важная информация, предоставляемая приложением при нормальном выполнении
      debug10Информация для диагностики проблем и устранения неполадок
      all0Все события
      осторожно

      Любой уровень журнала ниже уровня "info" НЕБЕЗОПАСЕН и может регистрировать конфиденциальные данные.
      Подробную информацию об уровнях журналирования смотрите в документации проекта SaltStack.

    6. Пути к каталогам в файловой системе хоста Docker, в которых будут храниться конфигурации для клиентов.
      Каталоги могут быть перенесены, например, на примонтированное хранилище:

      SSHFS_STORAGE_PATH='./_sshfs-storage/'

      SSHFS-хранилище предназначено для хранения шаблонов и некоторых других типов файлов, используемых при работе Salt.Box.

Особенности развёртывания сервера Salt.Box в Astra Linux SE

Для установки сервера Salt.Box в ОС Astra Linux SE 1.7, 1.8 необходимо выполнить дополнительные настройки службы docker и конфигурации проекта.

  1. Компонент docker-compose версии 2.20.2, входящий в состав версий Astra Linux SE 1.7.7 и 1.8.2, не поддерживает специфичные для разработки настройки develop. Данные настройки поддерживаются начиная с версии docker-compose 2.22.0.

    Убедитесь, что в конфигурационных файлах
    compose-backend-dev.yaml, compose-frontend-dev.yaml, compose-frontend-dev.yaml, compose-salt-dev.yaml
    отсутствует секция develop.

  2. При работе с Docker в Astra Linux SE 1.7.7 и 1.8.2 Вы можете столкнуться с проблемой при импорте контейнеров или загрузке образов. Команды могут прерваться из-за обнаруженной уязвимости.

    Причина возникновения проблемы

     Проблема возникает, когда Astra Linux обнаруживает уязвимости в содержимом контейнера.
     В Astra SE 1.7 Update 4 был добавлен сканер уязвимостей Openscap, проверяющий уязвимости по базе oval-db.
     Сканер включен по умолчанию и запрещает дальнейшее использование контейнера при обнаружении уязвимости.

    Пропуск проверки уязвимостей

     Вы можете обойти проверку уязвимостей, добавив соответствующую настройку в конфигурационный файл Docker.

    1. Откройте или создайте файл /etc/docker/daemon.json.

    2. Добавьте в файл следующую строку:

      { "astra-sec-level": 6 }

      Можно быстро добавить строку командой:

      sudo cat << EOF > /etc/docker/daemon.json
      { "astra-sec-level" : 6 }
      EOF
    3. Перезапустите Docker:

      sudo systemctl restart docker

Установка Salt.Box

  1. Создайте файлы с секретами в подкаталоге проекта ./secrets/.
    Создать файлы можно с помощью вспомогательного скрипта:

    python3 ./bin/make_secrets.py
  2. Находясь в каталоге проекта, запустите сборку:

    sudo docker compose up --build -d
    предупреждение

    Проверьте, нет ли предупреждений о неустановленных переменных, чтобы избежать ошибок сборки.

  3. Для обновления внешних образов выполните команду:

    sudo docker compose pull

    затем перезапустите сборку командой:

    sudo docker compose down && sudo docker compose up -d

    Если указан флаг --pull=always, перед сборкой будут загружены актуальные образы:

    sudo docker compose up --build --pull=always

Подключение дополнительных модулей

к сведению

Дополнительные модули, расширяющие функциональные возможности программного комплекса Salt.Box, могут распространяться по проприетарной лицензии, для получения исходного кода модуля или его бинарного дистрибутива может потребоваться регистрация в GIT-репозитории проекта Salt.Box.

Модуль мониторинга

  1. В родительский каталог для каталога проекта Salt.Box Compose клонируйте репозиторий metric-compose

    git clone git@dev.saltbox.pro:saltbox/saltbox-metric-compose.git ../saltbox-metric-compose
  2. Добавьте в файл переменных окружения override.env следующие строки:

    COMPOSE_FILE="${COMPOSE_FILE}:../saltbox-metric-compose/compose.yaml"

    _UPDATE_AND_RUN_EXTRA_ENV_FILES='../saltbox-metric-compose/.env'
  3. Сохраните изменённый файл и выполните слияние с файлом base.env командой:

    ./bin/update_and_run.sh --only-env

Модуль «Инвентаризация»

  1. В родительский каталог для каталога проекта Salt.Box Compose клонируйте репозиторий inventory-compose

    git clone git@dev.saltbox.pro:saltbox/saltbox-inventory-compose.git ../saltbox-inventory-compose
  2. Добавьте в файл переменных окружения override.env следующие строки:

    COMPOSE_FILE="${COMPOSE_FILE}:../saltbox-inventory-compose/compose.yaml"

    _UPDATE_AND_RUN_EXTRA_ENV_FILES='../saltbox-inventory-compose/.env'
    _UPDATE_AND_RUN_EXTRA_SECRETS_CONFS='../saltbox-inventory-compose/secrets.json'
  3. Сохраните изменённый файл и выполните слияние с файлом base.env командой:

    ./bin/update_and_run.sh --only-env

Модуль «Планировщик»

  1. В родительский каталог для каталога проекта Salt.Box Compose клонируйте репозиторий scheduler-compose

    git clone git@dev.saltbox.pro:saltbox/saltbox-scheduler-compose.git ../saltbox-scheduler-compose
  2. Добавьте в файл переменных окружения override.env следующие строки:

    COMPOSE_FILE="${COMPOSE_FILE}:../saltbox-scheduler-compose/compose.yaml"

    _UPDATE_AND_RUN_EXTRA_ENV_FILES='../saltbox-scheduler-compose/.env'
    _UPDATE_AND_RUN_EXTRA_SECRETS_CONFS='../saltbox-scheduler-compose/secrets.json'
  3. Сохраните изменённый файл и выполните слияние с файлом base.env командой:

    ./bin/update_and_run.sh --only-env

Подключение нескольких дополнительных модулей

  1. В файле переменных окружения override.env в строках _UPDATE_AND_RUN_EXTRA_ENV_FILES и
    _UPDATE_AND_RUN_EXTRA_SECRETS_CONFS
    перечислите добавляемые файлы конфигурации соответствующих модулей через запятую, например:

    _UPDATE_AND_RUN_EXTRA_ENV_FILES='../saltbox-inventory-compose/.env,../saltbox-scheduler-compose/.env'
    _UPDATE_AND_RUN_EXTRA_SECRETS_CONFS='../saltbox-inventory-compose/secrets.json,../saltbox-scheduler-compose/secrets.json'
  2. Сохраните изменённый файл и выполните слияние с файлом base.env командой:

    ./bin/update_and_run.sh --only-env

Настройка HTTPS

Сертификат веб-сервера

Система создает Частный центр сертификации (Private CA) и выпускает сертификат для веб-сервера при первом запуске.

Сертификат центра сертификации можно получить с помощью команды:

# Система должна быть запущена
sudo ./bin/sb-compose.sh cp redis-salt:/etc/redis/certs/ca.crt ./

Он будет сохранен в файл ca.crt в текущем каталоге и может быть установлен в веб-браузер для подтверждения доверия к веб-интерфейсу.

Сгенерированный сертификат по умолчанию привязан к DNS-именам localhost и saltbox.local.
Вы можете указать другие DNS-имена в переменной WEB_SERVER_SSL_ALT_NAMES_DNS и/или IP-адреса в переменной WEB_SERVER_SSL_ALT_NAMES_IP (чтобы обращаться к системе по IP-адресу, а не по DNS-имени).
Обе переменные могут принимать списки, разделенные запятыми.
DNS-имена могут быть RFC-совместимыми wildcard-шаблонами (*.saltbox.local, но не *saltbox.local). Символы подстановки для IP-адресов не поддерживаются.

Перезагрузите систему, чтобы применить изменения и пересоздать сертификат.

Сертификат по умолчанию можно заменить другим, соответствующим требованиям:

# Система должна быть запущена хотя бы один раз
sudo ./bin/sb-compose.sh cp CUSTOM_CERT proxy:/etc/nginx/ssl/proxy.crt
sudo ./bin/sb-compose.sh cp CUSTOM_CERT_KEY proxy:/etc/nginx/ssl/proxy.key
предупреждение

Изменение переменных WEB_SERVER_SSL_ALT_NAMES_* приведет к перезаписи пользовательского сертификата новым сгенерированным.

Работа за обратным прокси-сервером с SSL-терминацией

Убедитесь, что WEB_SERVER_OUTER_SOCKET соответствует server_name и порту обратного прокси.

Nginx может быть установлен на том же хосте, что и Salt.Box, либо на отдельном хосте.
В последнем случае убедитесь, что Salt.Box доступен для хоста Nginx, например, с помощью команды:

curl http://<SALTBOX_HOST>:<SALTBOX_WEB_SERVER_PORT>/auth/keycloak/realms/salt.box/.well-known/openid-configuration

Команда должна возвратить длинный ответ в формате JSON.

Пример конфигурационного файл Nginx для веб-интерфейса Salt.Box.

server {
server_name <NAME>;
client_max_body_size 256m;

access_log /var/log/nginx/saltbox_access.log;
error_log /var/log/nginx/saltbox_error.log;

location / {
add_header X-Frame-Options 'SAMEORIGIN';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection ‘upgrade’;

proxy_pass https://<SALTBOX_HOST>:<SALTBOX_WEB_SERVER_PORT>;
}

listen 443 ssl http2;
ssl_certificate <PATH_TO_CERT>;
ssl_certificate_key <PATH_TO_CERT_KEY>;
<OTHER SSL SETTTINGS DEPENDS ON CERT>
}

server {
server_name <NAME>;
listen 80;
return 301 https://$host$request_uri;
}

Не забудьте указать нужные значения в заполнителях < ... >.

Объекты Docker, создаваемые при установке

После успешного завершения процесса сборки создаётся ряд объектов Docker, показанных в таблицах 1, 2, 3.

Образы

Пример вывода команды docker image ls:

IMAGE                                                                ID             DISK USAGE   CONTENT SIZE   EXTRA
mongo:7 adfc10cca964 1.18GB 295MB U
postgres:16-alpine 20edbde7749f 395MB 111MB U
rabbitmq:3-management e582c0bc7766 392MB 118MB U
registry.saltbox.pro/saltbox/saltbox-bridge/salt-master:v0.1.2 8417a13ea123 693MB 172MB U
registry.saltbox.pro/saltbox/saltbox-compose/keycloak-init:v0.1.2 ee2a7b0ba77a 854MB 291MB U
registry.saltbox.pro/saltbox/saltbox-compose/keycloak:v0.1.2 3e72e993f004 843MB 288MB U
registry.saltbox.pro/saltbox/saltbox-compose/make-certs:v0.1.2 69ba687e3072 301MB 75.2MB U
registry.saltbox.pro/saltbox/saltbox-compose/mongodb:v0.1.2 8011f65841cb 734MB 180MB U
registry.saltbox.pro/saltbox/saltbox-compose/opa:v0.1.2 b18482f116f7 92.5MB 26.9MB U
registry.saltbox.pro/saltbox/saltbox-compose/proxy:v0.1.2 33b7eb9ac82a 211MB 53.7MB U
registry.saltbox.pro/saltbox/saltbox-compose/redis:v0.1.2 f9d207cfd963 60.7MB 17.2MB U
registry.saltbox.pro/saltbox/saltbox-compose/sshfs:v0.1.2 a2037d157757 299MB 75.4MB U
registry.saltbox.pro/saltbox/saltbox-core:v0.1.2 8b4dfe39e82f 497MB 118MB U
registry.saltbox.pro/saltbox/saltbox-frontend-base:v0.1.2 ed4e2bddd141 222MB 56.1MB U
registry.saltbox.pro/saltbox/saltbox-frontend-core:v0.1.2 bb36a0eb0d29 362MB 84.8MB U
registry.saltbox.pro/saltbox/saltbox-frontend-gateway:v0.1.2 0aac454b8a81 242MB 63.2MB U
registry.saltbox.pro/saltbox/saltbox-frontend-root-config:v0.1.2 8c1f8c8a9517 212MB 53.9MB U
registry.saltbox.pro/saltbox/saltbox-gateway:v0.1.2 2a944b5b0297 458MB 111MB U

Таблица 1. Загружаемые образы Docker
Образ DockerРазмерОписание
mongo:7295 MBСУБД MongoDB
postgres:16-alpine111 MBСУБД PostgreSQL
rabbitmq:3-management118 MBБрокер сообщений RabbitMQ
registry.saltbox.pro/saltbox/saltbox-bridge/salt-master:v0.1.2172 MBСервер SaltStack (Salt Master)
registry.saltbox.pro/saltbox/saltbox-compose/keycloak-init:v0.1.2291 MB
...
registry.saltbox.pro/saltbox/saltbox-compose/keycloak:v0.1.2288 MBIdAM сервер KeyCloak
registry.saltbox.pro/saltbox/saltbox-compose/make-certs:v0.1.275.2 MB
...
registry.saltbox.pro/saltbox/saltbox-compose/mongodb:v0.1.2180 MB
...
registry.saltbox.pro/saltbox/saltbox-compose/opa:v0.1.226.9 MBOpen Policy Agent
registry.saltbox.pro/saltbox/saltbox-compose/proxy:v0.1.253.7 MB
...
registry.saltbox.pro/saltbox/saltbox-compose/redis:v0.1.217.2 MBRedis server
registry.saltbox.pro/saltbox/saltbox-compose/sshfs:v0.1.275.4 MBПодключаемая файловая система SSHFS
registry.saltbox.pro/saltbox/saltbox-core:v0.1.2118 MBСерверные компоненты (ядро) Salt.Box
registry.saltbox.pro/saltbox/saltbox-frontend-base:v0.1.256.1 MB
...
registry.saltbox.pro/saltbox/saltbox-frontend-core:v0.1.284.8 MBКомпоненты пользовательского интерфейса ядра Salt.Box
registry.saltbox.pro/saltbox/saltbox-frontend-gateway:v0.1.263.2 MBКомпоненты пользовательского интерфейса шлюза Salt.Box
registry.saltbox.pro/saltbox/saltbox-frontend-root-config:v0.1.253.9 MB
...
registry.saltbox.pro/saltbox/saltbox-gateway:v0.1.2111 MB
...

Контейнеры

Пример вывода команды docker compose ls -a:

NAME                STATUS                   CONFIG FILES
saltbox-dev exited(3), running(39) root/saltbox-compose/compose.yaml

Пример вывода команды docker container ls -a:

CONTAINER ID   IMAGE                                                             COMMAND                  CREATED      STATUS                     PORTS                                                             NAMES
d5bb42abfb11 registry.saltbox.pro/saltbox/saltbox-compose/proxy:v0.1.2 "/docker/entrypoint.…" 4 days ago Up 2 minutes 0.0.0.0:443->443/tcp, [::]:443->443/tcp saltbox-proxy-1
5c52aac2ae46 registry.saltbox.pro/saltbox/saltbox-core:v0.1.2 "/usr/local/bin/entr…" 4 days ago Up 2 minutes 8000/tcp saltbox-saltbox-core-salt-buffer-manager-1
fb6210509f33 registry.saltbox.pro/saltbox/saltbox-core:v0.1.2 "/usr/local/bin/entr…" 4 days ago Up 2 minutes 8000/tcp saltbox-saltbox-core-jobs-watcher-1
1d0a763c5fd4 registry.saltbox.pro/saltbox/saltbox-core:v0.1.2 "/usr/local/bin/entr…" 4 days ago Up 2 minutes 8000/tcp saltbox-saltbox-core-taskiq-worker-1
66f5583b0d76 registry.saltbox.pro/saltbox/saltbox-core:v0.1.2 "/usr/local/bin/entr…" 4 days ago Up 2 minutes 8000/tcp saltbox-saltbox-core-faststream-rabbit-1
b7a98203125c registry.saltbox.pro/saltbox/saltbox-core:v0.1.2 "/usr/local/bin/entr…" 4 days ago Up 2 minutes 8000/tcp saltbox-saltbox-core-taskiq-scheduler-1
72a1eeb0eaa4 registry.saltbox.pro/saltbox/saltbox-core:v0.1.2 "/usr/local/bin/entr…" 4 days ago Up 2 minutes 8000/tcp saltbox-saltbox-core-tasks-watcher-1
28e2e5c5ce09 registry.saltbox.pro/saltbox/saltbox-core:v0.1.2 "/usr/local/bin/entr…" 4 days ago Up 2 minutes 8000/tcp saltbox-saltbox-core-faststream-redis-1
062090aded54 registry.saltbox.pro/saltbox/saltbox-core:v0.1.2 "/usr/local/bin/entr…" 4 days ago Up 2 minutes 8000/tcp saltbox-saltbox-core-1
6e3c341cc1d6 registry.saltbox.pro/saltbox/saltbox-compose/keycloak-init:v0.1.2 "/usr/local/bin/crea…" 4 days ago Exited (0) 2 minutes ago saltbox-keycloak-init-1
793f58c4f8f7 registry.saltbox.pro/saltbox/saltbox-core:v0.1.2 "/usr/local/bin/entr…" 4 days ago Exited (0) 2 minutes ago saltbox-saltbox-core-init-1
90e4853b1786 registry.saltbox.pro/saltbox/saltbox-gateway:v0.1.2 "/usr/local/bin/entr…" 4 days ago Up 3 minutes 8000-8001/tcp saltbox-saltbox-gateway-1
f317625b572b registry.saltbox.pro/saltbox/saltbox-bridge/salt-master:v0.1.2 "/usr/local/bin/entr…" 4 days ago Up 3 minutes 0.0.0.0:4505-4506->4505-4506/tcp, [::]:4505-4506->4505-4506/tcp saltbox-salt-master-1
16d952e98127 registry.saltbox.pro/saltbox/saltbox-compose/keycloak:v0.1.2 "/usr/local/bin/star…" 4 days ago Up 3 minutes (healthy) 8080/tcp saltbox-keycloak-1
1469dcfe3be4 registry.saltbox.pro/saltbox/saltbox-compose/redis:v0.1.2 "entrypoint.sh '--sa…" 4 days ago Up 3 minutes (healthy) 127.0.0.1:6379->6379/tcp saltbox-redis-salt-1
9d144b42abc7 postgres:16-alpine "docker-entrypoint.s…" 4 days ago Up 3 minutes (healthy) 5432/tcp saltbox-keycloak-db-1
1d10675d0eef registry.saltbox.pro/saltbox/saltbox-compose/redis:v0.1.2 "entrypoint.sh '--sa…" 4 days ago Up 3 minutes 6379/tcp saltbox-redis-taskiq-1
c45141cad164 registry.saltbox.pro/saltbox/saltbox-frontend-core:v0.1.2 "/docker/entrypoint.…" 4 days ago Up 3 minutes 0.0.0.0:8003->80/tcp, [::]:8003->80/tcp saltbox-saltbox-frontend-core-1
912fad525bbd registry.saltbox.pro/saltbox/saltbox-compose/make-certs:v0.1.2 "/docker/entrypoint.…" 4 days ago Exited (0) 3 minutes ago saltbox-make-certs-1
4153c00d49de rabbitmq:3-management "docker-entrypoint.s…" 4 days ago Up 3 minutes (healthy) 0.0.0.0:5672->5672/tcp, [::]:5672->5672/tcp saltbox-rabbitmq-1
ac337e587705 registry.saltbox.pro/saltbox/saltbox-compose/mongodb:v0.1.2 "/usr/local/bin/entr…" 4 days ago Up 3 minutes (healthy) 127.0.0.1:27017->27017/tcp saltbox-mongo-1
d29b95159935 registry.saltbox.pro/saltbox/saltbox-compose/sshfs:v0.1.2 "/usr/local/bin/sshd…" 4 days ago Up 3 minutes 0.0.0.0:1022->1022/tcp, [::]:1022->1022/tcp saltbox-sshfs-1
fa2405d6eb98 registry.saltbox.pro/saltbox/saltbox-compose/opa:v0.1.2 "/opa run --server -…" 4 days ago Up 3 minutes 0.0.0.0:8181->8181/tcp, [::]:8181->8181/tcp saltbox-opa-1
8201cabccffb registry.saltbox.pro/saltbox/saltbox-frontend-base:v0.1.2 "/docker/entrypoint.…" 4 days ago Up 3 minutes 80/tcp saltbox-saltbox-frontend-base-1
3d2ee9895998 registry.saltbox.pro/saltbox/saltbox-frontend-root-config:v0.1.2 "/docker/entrypoint.…" 4 days ago Up 3 minutes 80/tcp saltbox-saltbox-frontend-root-config-1
ceed9b0cf061 registry.saltbox.pro/saltbox/saltbox-frontend-gateway:v0.1.2 "/docker/entrypoint.…" 4 days ago Up 3 minutes 80/tcp saltbox-saltbox-frontend-gateway-1

Статусы контейнеров:

  • Up — контейнер запущен
  • Exited — контейнер запущен, затем нормально остановлен.

Контейнеры
saltbox-keycloak-init-1,
saltbox-saltbox-core-init-1,
saltbox-make-certs-1
запускаются только для инициализации системы. Их нормальное состояние после запуска проекта saltbox-compose"Exited".

Таблица 2. Контейнеры Docker, создаваемые при установке
Контейнер DockerОписание
saltbox-proxy-1Nginx reverse proxy.
Перенаправляет запросы клиента на внутренние сервисы в контейнерах
saltbox-saltbox-core-salt-buffer-manager-1
...
saltbox-saltbox-core-jobs-watcher-1Модуль, ожидающий результатов выполнения команд SaltStack
saltbox-saltbox-core-taskiq-worker-1Процесс Taskiq worker.
Отвечает за получение, отпарвку, выполнение задач из очереди
saltbox-saltbox-core-faststream-rabbit-1
...
saltbox-saltbox-core-taskiq-scheduler-1Модуль, отвечающий за работу с распределённой асинхронной очередью задач
saltbox-saltbox-core-tasks-watcher-1Модуль, ожидающий результатов выполнения задач SaltStack
saltbox-saltbox-core-faststream-redis-1Сервер Redis, используемый как брокер для Faststream
saltbox-saltbox-core-1Главный серверный компонент Salt.Box (бэкенд)
saltbox-keycloak-init-1
...
saltbox-saltbox-core-init-1
...
saltbox-saltbox-gateway-1Шлюз Salt.Box
saltbox-salt-master-1Master-сервер SaltStack для управления миньонами
saltbox-keycloak-1KeyCloak — подсистема идентификации и управления доступом Salt.Box
saltbox-redis-salt-1Сервер Redis, используемый для хранения результатов выполнения процессов, связанных с SaltStack
saltbox-keycloak-db-1База данных сервиса KeyCloak
saltbox-redis-taskiq-1Сервер Redis, используемый как брокер и хранилище результатов для Taskiq
saltbox-saltbox-frontend-core-1Компоненты пользовательского интерфейса ядра Salt.Box
saltbox-make-certs-1Модуль, предоставляющий сервис выпуска сертификатов
saltbox-rabbitmq-1Сервис RabbitMQ.
Брокер сообщений. Отвечает за сбор данных из нескольких источников и отправляет их в сервисы для дальнейшей обработки
saltbox-mongo-1СУБД MongoDB.
Используется бэкендом Salt.Box. В БД хранятся такие сущности, как клиенты, коллекции и т. п.
saltbox-sshfs-1Сервер SSH.
Используется для монтирования файловой системы sshfs на миньонах
saltbox-opa-1Сервис Open Policy Agent.
OPA используется для создания политик доступа к различным компонентам веб-приложения
saltbox-saltbox-frontend-base-1
...
saltbox-saltbox-frontend-root-config-1
...
saltbox-saltbox-frontend-gateway-1Компоненты пользовательского интерфейса шлюза Salt.Box

Тома

Пример вывода команды docker volume ls:

DRIVER    VOLUME NAME
local bd7b162d2690cec26fc0b19741e52d708f9c3c4213456f50b4c54c5cf6550802
local saltbox_keycloak-db_data
local saltbox_mongo_data
local saltbox_proxy_certs
local saltbox_redis_salt_certs
local saltbox_redis_salt_data
local saltbox_redis_taskiq_data
local saltbox_salt_master_pki
local saltbox_salt_master_saltbox_var
local saltbox_salt_repos
local saltbox_saltbox_core_var

Таблица 3. Тома Docker, создаваемые при установке
Том DockerНачальный
размер
Описание
<256-битное имя в 16-ричной записи>< 1 МБДанные сервиса RabbitMQ
(используется контейнером saltbox-rabbitmq-1)
saltbox_saltbox_core_var< 1 МБКлючи GPG
(используется контейнерами:
saltbox-saltbox-core-faststream-redis-1,
saltbox-saltbox-core-tasks-watcher-1,
saltbox-saltbox-core-1,
saltbox-saltbox-core-taskiq-scheduler-1,
saltbox-saltbox-core-taskiq-worker-1)
saltbox_keycloak-db_data67 МБДанные сервиса KeyCloak
(используется контейнером saltbox-keycloak-db-1)
saltbox_salt_master_pki< 1 МБХранилище ключей сервиса salt-master
(используется контейнером saltbox-salt-master-1)
saltbox_redis_taskiq_data< 1 МБДанные сервиса Taskiq
(используется контейнером saltbox-redis-taskiq-1)
saltbox_mongo_config< 1 МБКонфигурационные данные СУБД MongoDB
(используется контейнером saltbox-mongo-1)
saltbox_mongo_data311 МБДанные СУБД MongoDB
(используется контейнером saltbox-mongo-1)
saltbox_redis_salt_data< 1 МБДанные сервера Redis
(используется контейнером saltbox-redis-salt-1)
saltbox_redis_salt_certs< 1 МБХранилище сертификатов сервера Redis
(используется контейнерами:
saltbox-saltbox-core-faststream-redis-1,
saltbox-saltbox-core-tasks-watcher-1,
saltbox-saltbox-core-1,
saltbox-saltbox-core-taskiq-scheduler-1,
saltbox-saltbox-core-taskiq-worker-1,
saltbox-redis-salt-1,
saltbox-make-redis-salt-certs-1,
saltbox-salt-master-1)
saltbox_salt_master_saltbox_var< 1 МБ
(используется контейнером saltbox-salt-master-1)
saltbox_salt_repos< 1 МБСхемы JSON для различных функций SaltStack
(используется контейнерами:
saltbox-saltbox-core-faststream-redis-1,
saltbox-saltbox-core-tasks-watcher-1,
saltbox-saltbox-core-1,
saltbox-saltbox-core-taskiq-scheduler-1,
saltbox-saltbox-core-taskiq-worker-1,
saltbox-sshfs-1)

Вход в веб-интерфейс Salt.Box

В веб-браузере перейдите по адресу:
https://<Адрес, из переменной WEB_SERVER_OUTER_SOCKET файла .env>,
если сервер Salt.Box установлен локально, или:
https://<Адрес, из переменной WEB_SERVER_OUTER_SOCKET файла .env>,
если доступ к серверу Salt.Box осуществляется через обратный прокси-сервер.

Во втором случае веб-браузер выдаст предупреждение о самоподписанном сертификате. Сделайте исключение для данного сайта.