Развёртывание сервера 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 по ссылке: https://dev.saltbox.pro/saltbox/saltbox-compose/-/releases и разархивируйте его в каталог Вашей рабочей директории.
Быстрый старт 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] [--addons ADDONS] [--admin ADMIN] [--compose-ref COMPOSE_REF] [--cleanup] [--explicit-secret EXPLICIT_SECRET] [--host HOST] [--host-is-name] [--keep-addon-tags] [--keep-image-tags] [--port PORT] [-n] [--no-progress] [-s] [-u] [-v] [OVERRIDE ...]
| Аргументы | Описание |
|---|---|
| Позиционные аргументы | |
OVERRIDE | Дополнительные значения для включения в dotenv в формате NAME='VAL'. |
| Опции | |
-h, --help | Показать это справочное сообщение и выйти. |
--addons ADDONS | Установить официальные модули дополнения Salt.Box: Inventory, Metric, Scheduler, FREE (значение по умолчанию), ALL.ВНИМАНИЕ! НЕКОТОРЫЕ ДОПОЛНЕНИЯ ЯВЛЯЮТСЯ ПРОПРИЕТАРНЫМИ, ДЛЯ ЗАГРУЗКИ ТРЕБУЕТСЯ АВТОРИЗАЦИЯ ПО ТОКЕНУ. Может быть указано несколько значений. |
--admin ADMIN | Логин администратора Salt.Box. |
--compose-ref COMPOSE_REF | Ссылка на Git для получения Salt.Box Compose, RELEASE (значение по умолчанию) — для поиска последнего тега релиза, master и dev — для основных веток разработки. |
--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-addon-tags | Не переключать теги модулей расширения. |
--keep-image-tags | Не переключать теги образов на dev. |
--port PORT | Порт для обслуживания HTTPS-соединений, по умолчанию 443. |
-n, --non-interactive | Не запрашивать ввод параметров, использовать значения по умолчанию. |
--no-progress | Не отображать ход загрузки. |
-s, --skip-check | Не проверять установку Docker перед запуском. |
-u, --skip-run | Выполнить только подготовку (без установки Salt.Box). |
-v, --verbose | Вывод дополнительной информации. |
Если в опции --addons ADDONS указаны проприетарные модули или значение ALL (установить все доступные модули), необходимо записать в переменную среды SALTBOX_INSTALL_TOKEN токен авторизации для загрузки проприетарных модулей.
Токен авторизации Вы можете получить при приобретении соответствующей лицензии.
Подробные условия доступны на сайте продукта.
После завершения загрузки и настройки утилита 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 следующего вида:
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
Скрипт автоматической установки update_and_run.sh может быть запущен одним из двух способов:
- Автоматически — утилитой
install_saltbox.pyпо завершении загрузки файлов требуемых проектов и настройки конфигурационных файлов. - Вручную — если Вы самостоятельно клонировали репозитории с компонентами системы и сформировали файл
override.envлибо запустили утилитуinstall_saltbox.pyс опцией--skip-run(только подготовка, без установки Salt.Box).
Находясь в каталоге проекта, запустите скрипт автоматической установки:
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
Пошаговая установка Salt.Box предназначена исключительно для специалистов, занимающихся разработкой и администрированием системы. Данный способ установки рекомендуется использовать только в случае возникновения трудностей при автоматической установке.
Подготовка к установке
-
Войдите в каталог проекта.
-
В корневом каталоге проекта создайте файл
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.
Инструкцию по установке дополнительных модулей смотрите в разделе Подключение дополнительных модулей.-
Если Вы планируете развёртывание 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). -
Сокет сервера Redis (для подключения к нему мастера).
Для подключения внешних мастеров следует указать0.0.0.0:6379(все сетевые интерфейсы) либо указать адрес одного из сетевых интерфейсов:REDIS_SALT_EXPOSE_SOCKET=<IP_ADDRESS>:6379 -
Теги образов, с которых осуществляется развёртывание 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
-
Время ожидания остановки контейнера до принудительной остановки:
STOP_GRACE_PERIOD=5sУменьшение данного значения может ускорить остановку, но повышает риски потери вре́менных данных.
-
Уровень журналирования контейнера главного мастера SaltStack:
SALT_MASTER_LOG_LEVEL='warning'
SALT_MINION_LOG_LEVEL='warning'Обозначения уровней журналирования:
Уровень Числовое значение Описание critical 50 Критические ошибки error 40 Ошибки warning 30 Предупреждения info 20 Важная информация, предоставляемая приложением при нормальном выполнении debug 10 Информация для диагностики проблем и устранения неполадок all 0 Все события осторожноЛюбой уровень журнала ниже уровня "info" НЕБЕЗОПАСЕН и может регистрировать конфиденциальные данные.
Подробную информацию об уровнях журналирования смотрите в документации проекта SaltStack. -
Пути к каталогам в файловой системе хоста Docker, в которых будут храниться конфигурации для клиентов.
Каталоги могут быть перенесены, например, на примонтированное хранилище:SSHFS_STORAGE_PATH='./_sshfs-storage/'SSHFS-хранилище предназначено для хранения шаблонов и некоторых других типов файлов, используемых при работе Salt.Box.
-
Особенности развёртывания сервера Salt.Box в Astra Linux SE
Для установки сервера Salt.Box в ОС Astra Linux SE 1.7, 1.8 необходимо выполнить дополнительные настройки службы docker и конфигурации проекта.
-
Компонент 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. -
При работе с Docker в Astra Linux SE 1.7.7 и 1.8.2 Вы можете столкнуться с проблемой при импорте контейнеров или загрузке образов. Команды могут прерваться из-за обнаруженной уязвимости.
Причина возникновения проблемыПроблема возникает, когда Astra Linux обнаруживает уязвимости в содержимом контейнера.
Пропуск проверки уязвимостей
В Astra SE 1.7 Update 4 был добавлен сканер уязвимостей Openscap, проверяющий уязвимости по базе oval-db.
Сканер включен по умолчанию и запрещает дальнейшее использование контейнера при обнаружении уязвимости.Вы можете обойти проверку уязвимостей, добавив соответствующую настройку в конфигурационный файл Docker.
-
Откройте или создайте файл
/etc/docker/daemon.json. -
Добавьте в файл следующую строку:
{ "astra-sec-level": 6 }Можно быстро добавить строку командой:
sudo cat << EOF > /etc/docker/daemon.json
{ "astra-sec-level" : 6 }
EOF -
Перезапустите Docker:
sudo systemctl restart docker
-
Установка Salt.Box
-
Создайте файлы с секретами в подкаталоге проекта
./secrets/.
Создать файлы можно с помощью вспомогательного скрипта:python3 ./bin/make_secrets.py -
Находясь в каталоге проекта, запустите сборку:
sudo docker compose up --build -dпредупреждениеПроверьте, нет ли предупреждений о неустановленных переменных, чтобы избежать ошибок сборки.
-
Для обновления внешних образов выполните команду:
sudo docker compose pullзатем перезапустите сборку командой:
sudo docker compose down && sudo docker compose up -dЕсли указан флаг
--pull=always, перед сборкой будут загружены актуальные образы:sudo docker compose up --build --pull=always
Подключение дополнительных модулей
Дополнительные модули, расширяющие функциональные возможности программного комплекса Salt.Box, могут распространяться по проприетарной лицензии.
Для их загрузки необходимо получить токен авторизации.
Подробные условия доступны на сайте продукта.
Модуль мониторинга
-
В родительский каталог для каталога проекта Salt.Box Compose клонируйте репозиторий metric-compose
git clone git@dev.saltbox.pro:saltbox/saltbox-metric-compose.git ../saltbox-metric-compose -
Добавьте в файл переменных окружения
override.envследующие строки:COMPOSE_FILE="${COMPOSE_FILE}:../saltbox-metric-compose/compose.yaml"
_UPDATE_AND_RUN_EXTRA_ENV_FILES='../saltbox-metric-compose/.env' -
Сохраните изменённый файл и выполните слияние с файлом
base.envкомандой:./bin/update_and_run.sh --only-env
Модуль «Инвентаризация»
-
В родительский каталог для каталога проекта Salt.Box Compose клонируйте репозиторий inventory-compose
git clone git@dev.saltbox.pro:saltbox/saltbox-inventory-compose.git ../saltbox-inventory-compose -
Добавьте в файл переменных окружения
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' -
Сохраните изменённый файл и выполните слияние с файлом
base.envкомандой:./bin/update_and_run.sh --only-env
Модуль «Планировщик»
-
В родительский каталог для каталога проекта Salt.Box Compose клонируйте репозиторий scheduler-compose
git clone git@dev.saltbox.pro:saltbox/saltbox-scheduler-compose.git ../saltbox-scheduler-compose -
Добавьте в файл переменных окружения
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' -
Сохраните изменённый файл и выполните слияние с файлом
base.envкомандой:./bin/update_and_run.sh --only-env
Подключение нескольких дополнительных модулей
-
В файле переменных окружения
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' -
Сохраните изменённый файл и выполните слияние с файлом
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 f2b40853c0f7 1.19GB 297MB U
postgres:16-alpine 20edbde7749f 395MB 111MB U
registry.saltbox.pro/saltbox/saltbox-bridge/salt-master:v0.2.0 5696a18913f8 693MB 172MB U
registry.saltbox.pro/saltbox/saltbox-compose/keycloak-init:v0.2.0 06c45d9d0162 854MB 291MB U
registry.saltbox.pro/saltbox/saltbox-compose/keycloak:v0.2.0 1f88a21d8e81 843MB 288MB U
registry.saltbox.pro/saltbox/saltbox-compose/make-certs:v0.2.0 ee16a288884f 301MB 75.2MB U
registry.saltbox.pro/saltbox/saltbox-compose/mongodb:v0.2.0 8eccbfb6398a 734MB 180MB U
registry.saltbox.pro/saltbox/saltbox-compose/opa:v0.2.0 25d2760d765e 93.7MB 27.4MB U
registry.saltbox.pro/saltbox/saltbox-compose/proxy:v0.2.0 f3bf3d5f52e0 211MB 53.7MB U
registry.saltbox.pro/saltbox/saltbox-compose/rabbitmq:v0.2.0 4f58ad84ad23 391MB 116MB U
registry.saltbox.pro/saltbox/saltbox-compose/redis:v0.2.0 f1ab080cc86c 60.7MB 17.2MB U
registry.saltbox.pro/saltbox/saltbox-compose/sshfs:v0.2.0 1d5200b0d1fb 299MB 75.4MB U
registry.saltbox.pro/saltbox/saltbox-core:v0.2.0 116be1106092 497MB 118MB U
registry.saltbox.pro/saltbox/saltbox-frontend-base:v0.2.0 46fdc0bb0dfb 222MB 56MB U
registry.saltbox.pro/saltbox/saltbox-frontend-core:v0.2.0 79f3476158f6 362MB 84.8MB U
registry.saltbox.pro/saltbox/saltbox-frontend-gateway:v0.2.0 0aac454b8a81 242MB 63.2MB U
registry.saltbox.pro/saltbox/saltbox-frontend-root-config:v0.2.0 4855b87f0103 212MB 53.9MB U
registry.saltbox.pro/saltbox/saltbox-gateway:v0.2.0 8fd71c7f084e 458MB 111MB U
Таблица 1. Загружаемые образы Docker
| Образ Docker | Размер | Описание |
|---|---|---|
| postgres:16-alpine | 111.0 MB | СУБД PostgreSQL |
| registry.saltbox.pro/saltbox/saltbox-bridge/salt-master:v0.2.0 | 172.0 MB | Сервер SaltStack (Salt Master) |
| registry.saltbox.pro/saltbox/saltbox-compose/keycloak-init:v0.2.0 | 291.0 MB | Инициализация (bootstrap) сервера Keycloak (создание realm, пользователей, ролей) |
| registry.saltbox.pro/saltbox/saltbox-compose/keycloak:v0.2.0 | 288.0 MB | IdAM сервер KeyCloak |
| registry.saltbox.pro/saltbox/saltbox-compose/make-certs:v0.2.0 | 75.2 MB | Генерация и управление TLS/SSL сертификатами |
| registry.saltbox.pro/saltbox/saltbox-compose/mongodb:v0.2.0 | 180.0 MB | СУБД MongoDB |
| registry.saltbox.pro/saltbox/saltbox-compose/opa:v0.2.0 | 27.4 MB | Open Policy Agent |
| registry.saltbox.pro/saltbox/saltbox-compose/proxy:v0.2.0 | 53.7 MB | Обратный прокси / маршрутизация HTTP(S)-запросов |
| registry.saltbox.pro/saltbox/saltbox-compose/rabbitmq:v0.2.0 | 116.0 MB | Брокер сообщений RabbitMQ |
| registry.saltbox.pro/saltbox/saltbox-compose/redis:v0.2.0 | 17.2 MB | Redis server |
| registry.saltbox.pro/saltbox/saltbox-compose/sshfs:v0.2.0 | 75.4 MB | Подключаемая файловая система SSHFS |
| registry.saltbox.pro/saltbox/saltbox-core:v0.2.0 | 118.0 MB | Серверные компоненты (ядро) Salt.Box |
| registry.saltbox.pro/saltbox/saltbox-frontend-base:v0.2.0 | 56.0 MB | Базовый образ для компонентов пользовательского интерфейса |
| registry.saltbox.pro/saltbox/saltbox-frontend-core:v0.2.0 | 84.8 MB | Компоненты пользовательского интерфейса ядра Salt.Box |
| registry.saltbox.pro/saltbox/saltbox-frontend-gateway:v0.2.0 | 63.2 MB | Компоненты пользовательского интерфейса шлюза Salt.Box |
| registry.saltbox.pro/saltbox/saltbox-frontend-root-config:v0.2.0 | 53.9 MB | Конфигурация корневого frontend-приложения |
| registry.saltbox.pro/saltbox/saltbox-gateway:v0.2.0 | 111.0 MB | API-шлюз (единая точка входа к backend-сервисам) |
Контейнеры
Пример вывода команды docker compose ls -a:
NAME STATUS CONFIG FILES
saltbox exited(3), running(40) root/saltbox-compose/compose.yaml
Пример вывода команды docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fdf94f107105 registry.saltbox.pro/saltbox/saltbox-core:v0.2.0 "/usr/local/bin/entr…" 4 hours ago Up 4 hours 8000/tcp saltbox-saltbox-core-taskiq-scheduler-1
ce6193540999 registry.saltbox.pro/saltbox/saltbox-core:v0.2.0 "/usr/local/bin/entr…" 4 hours ago Up 4 hours 8000/tcp saltbox-saltbox-core-tasks-watcher-1
1128455ccdc5 registry.saltbox.pro/saltbox/saltbox-core:v0.2.0 "/usr/local/bin/entr…" 4 hours ago Up 4 hours 8000/tcp saltbox-saltbox-core-1
b428a932a41d registry.saltbox.pro/saltbox/saltbox-core:v0.2.0 "/usr/local/bin/entr…" 4 hours ago Up 4 hours 8000/tcp saltbox-saltbox-core-jobs-watcher-1
9a60479df609 registry.saltbox.pro/saltbox/saltbox-core:v0.2.0 "/usr/local/bin/entr…" 4 hours ago Up 4 hours 8000/tcp saltbox-saltbox-core-taskiq-worker-1
a51f6d9c20af registry.saltbox.pro/saltbox/saltbox-core:v0.2.0 "/usr/local/bin/entr…" 4 hours ago Up 4 hours 8000/tcp saltbox-saltbox-core-faststream-redis-1
30e82cc66ac2 registry.saltbox.pro/saltbox/saltbox-core:v0.2.0 "/usr/local/bin/entr…" 4 hours ago Up 4 hours 8000/tcp saltbox-saltbox-core-salt-buffer-manager-1
0b94dfe9063a registry.saltbox.pro/saltbox/saltbox-core:v0.2.0 "/usr/local/bin/entr…" 4 hours ago Up 4 hours 8000/tcp saltbox-saltbox-core-faststream-rabbit-1
36f81bb77f52 registry.saltbox.pro/saltbox/saltbox-core:v0.2.0 "/usr/local/bin/entr…" 4 hours ago Exited (0) 4 hours ago saltbox-saltbox-core-init-1
77199c95145e registry.saltbox.pro/saltbox/saltbox-gateway:v0.2.0 "/usr/local/bin/entr…" 4 hours ago Up 4 hours 8000-8001/tcp saltbox-saltbox-gateway-1
4ab20d13c97e registry.saltbox.pro/saltbox/saltbox-bridge/salt-master:v0.2.0 "/usr/local/bin/entr…" 4 hours ago Up 4 hours 0.0.0.0:4505-4506->4505-4506/tcp, [::]:4505-4506->4505-4506/tcp saltbox-salt-master-1
bfbc7f409290 registry.saltbox.pro/saltbox/saltbox-compose/keycloak-init:v0.2.0 "/usr/local/bin/crea…" 4 hours ago Exited (0) 4 hours ago saltbox-keycloak-init-1
6aea3edb3c39 registry.saltbox.pro/saltbox/saltbox-compose/redis:v0.2.0 "entrypoint.sh '--sa…" 4 hours ago Up 4 hours (healthy) 0.0.0.0:6379->6379/tcp saltbox-redis-salt-1
a4187358fe61 registry.saltbox.pro/saltbox/saltbox-compose/keycloak:v0.2.0 "/usr/local/bin/star…" 4 hours ago Up 4 hours (healthy) 8080/tcp saltbox-keycloak-1
d2d7876c8a10 postgres:16-alpine "docker-entrypoint.s…" 4 hours ago Up 4 hours (healthy) 5432/tcp saltbox-keycloak-db-1
8d8d67138a7c registry.saltbox.pro/saltbox/saltbox-compose/opa:v0.2.0 "/opa run --server -…" 4 hours ago Up 4 hours 0.0.0.0:8181->8181/tcp, [::]:8181->8181/tcp saltbox-opa-1
89a91a9b11a0 registry.saltbox.pro/saltbox/saltbox-frontend-base:v0.2.0 "/docker/entrypoint.…" 4 hours ago Up 4 hours 80/tcp saltbox-saltbox-frontend-base-1
8e2afaeb28cf registry.saltbox.pro/saltbox/saltbox-compose/sshfs:v0.2.0 "/usr/local/bin/sshd…" 4 hours ago Up 4 hours 0.0.0.0:1022->1022/tcp, [::]:1022->1022/tcp saltbox-sshfs-1
1cceb0254f29 registry.saltbox.pro/saltbox/saltbox-compose/mongodb:v0.2.0 "/usr/local/bin/entr…" 4 hours ago Up 4 hours (healthy) 127.0.0.1:27017->27017/tcp saltbox-mongo-1
0c1e6b22c2fe registry.saltbox.pro/saltbox/saltbox-compose/proxy:dev "/docker/entrypoint.…" 4 hours ago Up 4 hours 0.0.0.0:443->443/tcp, [::]:443->443/tcp saltbox-proxy-1
7e6cf1a2dd4e registry.saltbox.pro/saltbox/saltbox-compose/make-certs:dev "/docker/entrypoint.…" 4 hours ago Exited (0) 4 hours ago saltbox-make-certs-1
95495ec49c98 registry.saltbox.pro/saltbox/saltbox-compose/redis:dev "entrypoint.sh '--sa…" 4 hours ago Up 4 hours 6379/tcp saltbox-redis-taskiq-1
643ed6c0705a registry.saltbox.pro/saltbox/saltbox-frontend-gateway:v0.2.0 "/docker/entrypoint.…" 4 hours ago Up 4 hours 80/tcp saltbox-saltbox-frontend-gateway-1
2cfd8128a89f registry.saltbox.pro/saltbox/saltbox-frontend-root-config:v0.2.0 "/docker/entrypoint.…" 4 hours ago Up 4 hours 80/tcp saltbox-saltbox-frontend-root-config-1
32a035379cb0 registry.saltbox.pro/saltbox/saltbox-frontend-core:v0.2.0 "/docker/entrypoint.…" 4 hours ago Up 4 hours 0.0.0.0:8003->80/tcp, [::]:8003->80/tcp saltbox-saltbox-frontend-core-1
a41005b4af53 registry.saltbox.pro/saltbox/saltbox-compose/rabbitmq:v0.2.0 "entrypoint.sh" 4 hours ago Up 4 hours (healthy) 0.0.0.0:5672->5672/tcp, [::]:5672->5672/tcp saltbox-rabbitmq-1
Статусы контейнеров:
- Up — контейнер запущен
- Exited — контейнер запущен, затем нормально остановлен.
Контейнеры
saltbox-keycloak-init-1,
saltbox-saltbox-core-init-1,
saltbox-make-certs-1
запускаются только для инициализации системы. Их нормальное состояние после запуска проекта saltbox-compose — "Exited".
| Контейнер Docker | Описание |
|---|---|
| saltbox-proxy-1 | Nginx reverse proxy. Перенаправляет запросы клиента на внутренние сервисы в контейнерах |
| saltbox-saltbox-core-salt-buffer-manager-1 | Менеджер буферизации данных Salt. Отвечает за временное хранение и пакетную обработку данных, поступающих от SaltStack |
| saltbox-saltbox-core-jobs-watcher-1 | Модуль, ожидающий результатов выполнения команд SaltStack |
| saltbox-saltbox-core-taskiq-worker-1 | Процесс Taskiq worker. Отвечает за получение, отправку, выполнение задач из очереди |
| saltbox-saltbox-core-faststream-rabbit-1 | Потоковый обработчик (consumer) FastStream, подключенный к RabbitMQ. Обеспечивает асинхронную обработку сообщений из брокера RabbitMQ |
| 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 | Инициализатор Keycloak. Выполняет первоначальную настройку (создание realm’ов, клиентов, пользователей) для Keycloak при первом запуске |
| saltbox-saltbox-core-init-1 | Инициализатор ядра SaltBox. Выполняет миграции базы данных, создание начальных настроек и проверку конфигурации ядра Salt.Box |
| saltbox-saltbox-gateway-1 | Шлюз Salt.Box |
| saltbox-salt-master-1 | Master-сервер SaltStack для управления миньонами |
| saltbox-keycloak-1 | KeyCloak — подсистема идентификации и управления доступом 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 | Базовый модуль фронтенда. Содержит общие компоненты, стили, утилиты и библиотеки, используемые всеми интерфейсными модулями Salt.Box |
| saltbox-saltbox-frontend-root-config-1 | Контейнер с конфигурацией корневого frontend-приложения. Отвечает за маршрутизацию (routing), компоновку (layout) и объединение микрофронтендов пользовательского интерфейса системы SaltBox |
| saltbox-saltbox-frontend-gateway-1 | Компоненты пользовательского интерфейса шлюза Salt.Box |
Тома
Пример вывода команды docker volume ls
DRIVER VOLUME NAME
local 3a1d5abab3c2f1e3404a8d2e790a399c9823ff092e451c160893747a4ecb191b
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_data | 67 МБ | Данные сервиса 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_data | 306 МБ | Данные СУБД 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 осуществляется через обратный прокси-сервер.
Во втором случае веб-браузер выдаст предупреждение о самоподписанном сертификате. Сделайте исключение для данного сайта.