Развёртывание сервера 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 следующего вида:
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
Загрузка проекта и подготовка к установке
-
Загрузите актуальный релиз Salt.Box Compose по ссылке https://dev.saltbox.pro/saltbox/saltbox-compose/-/releases и разархивируйте его.
-
Войдите в каталог проекта.
-
В корневом каталоге проекта создайте файл
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, могут распространяться по проприетарной лицензии, для получения исходного кода модуля или его бинарного дистрибутива может потребоваться регистрация в GIT-репозитории проекта 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 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:7 | 295 MB | СУБД MongoDB |
| postgres:16-alpine | 111 MB | СУБД PostgreSQL |
| rabbitmq:3-management | 118 MB | Брокер сообщений RabbitMQ |
| registry.saltbox.pro/saltbox/saltbox-bridge/salt-master:v0.1.2 | 172 MB | Сервер SaltStack (Salt Master) |
| registry.saltbox.pro/saltbox/saltbox-compose/keycloak-init:v0.1.2 | 291 MB | ... |
| registry.saltbox.pro/saltbox/saltbox-compose/keycloak:v0.1.2 | 288 MB | IdAM сервер KeyCloak |
| registry.saltbox.pro/saltbox/saltbox-compose/make-certs:v0.1.2 | 75.2 MB | ... |
| registry.saltbox.pro/saltbox/saltbox-compose/mongodb:v0.1.2 | 180 MB | ... |
| registry.saltbox.pro/saltbox/saltbox-compose/opa:v0.1.2 | 26.9 MB | Open Policy Agent |
| registry.saltbox.pro/saltbox/saltbox-compose/proxy:v0.1.2 | 53.7 MB | ... |
| registry.saltbox.pro/saltbox/saltbox-compose/redis:v0.1.2 | 17.2 MB | Redis server |
| registry.saltbox.pro/saltbox/saltbox-compose/sshfs:v0.1.2 | 75.4 MB | Подключаемая файловая система SSHFS |
| registry.saltbox.pro/saltbox/saltbox-core:v0.1.2 | 118 MB | Серверные компоненты (ядро) Salt.Box |
| registry.saltbox.pro/saltbox/saltbox-frontend-base:v0.1.2 | 56.1 MB | ... |
| registry.saltbox.pro/saltbox/saltbox-frontend-core:v0.1.2 | 84.8 MB | Компоненты пользовательского интерфейса ядра Salt.Box |
| registry.saltbox.pro/saltbox/saltbox-frontend-gateway:v0.1.2 | 63.2 MB | Компоненты пользовательского интерфейса шлюза Salt.Box |
| registry.saltbox.pro/saltbox/saltbox-frontend-root-config:v0.1.2 | 53.9 MB | ... |
| registry.saltbox.pro/saltbox/saltbox-gateway:v0.1.2 | 111 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".
| Контейнер Docker | Описание |
|---|---|
| saltbox-proxy-1 | Nginx 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-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 | ... |
| 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_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_config | < 1 МБ | Конфигурационные данные СУБД MongoDB(используется контейнером saltbox-mongo-1) |
| saltbox_mongo_data | 311 МБ | Данные СУБД 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 осуществляется через обратный прокси-сервер.
Во втором случае веб-браузер выдаст предупреждение о самоподписанном сертификате. Сделайте исключение для данного сайта.