Установка и настройка компонентов на одном устройстве
06 октября 2026
ID 327915
Для работы оркестратора установите и настройте MongoDB, Redis и контейнеры оркестратора. Перед запуском контейнеров создайте Docker-сеть на устройстве.
MongoDB
Для использования MongoDB необходимо включить у CPU расширение системы команд AVX. Для этого в виртуальной среде (VMware, Proxmox) задайте режим CPU host или host-passthrough.
Для работы оркестратора соберите Docker-контейнер MongoDB из архива MongoDB, входящего в комплект поставки Kaspersky NGFW.
Чтобы установить и настроить MongoDB, выполните следующие команды:
- Создайте Docker volume на устройстве:
docker volume create orc_dbs_data
Вы можете проверить созданный Docker volume с помощью следующей команды:
docker volume ls | grep -E "orc"
- Перейдите в директорию для файлов MongoDB и подготовьте файлы, необходимые для сборки контейнера:
cd ~/knbe/mongo-build
mkdir mongo
cd mongo
cp ~/knbe/images/mongo_5.0.32-r7.crt*.tar.gz .
tar xzf mongo_5.0.32-r7.crt*.tar.gz
mv mongo_5.0*/bin .
rm -rf mongo_5.0*
- Задайте переменную среды:
Если вы выполняете этот шаг на Astra Linux, выполните команду:
export BASE_IMAGE=registry.astralinux.ru/library/astra/ubi18:1.8.3
Если вы выполняете этот шаг на Ubuntu, выполните команду:
export BASE_IMAGE=ubuntu:22.04
- Создайте файл Dockerfile:
cat > Dockerfile <<EOF
FROM $BASE_IMAGE
WORKDIR /
RUN apt-get update && apt-get install -y libcurl4 && rm -rf /var/lib/apt/lists/*
RUN groupadd --system mongodb && useradd --system --no-create-home -g mongodb mongodb
RUN mkdir -p /home/mongodb && chown mongodb:mongodb /home/mongodb
RUN mkdir -p /var/lib/mongodb && mkdir -p /var/log/mongodb && chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb
COPY mongo_5.0.32-r7.crt/bin/ /usr/bin/
RUN mkdir -p /data/db && chown -R mongodb:mongodb /data/db
USER mongodb
EXPOSE 27017
CMD ["mongod", "--bind_ip_all", "--logpath", "/var/log/mongodb/mongod.log", "--dbpath", "/var/lib/mongodb"]
EOF
- Соберите Docker-контейнер MongoDB:
docker build -t mongo:5.0.32-knbe-custom .
- Сохраните образ в архив
mongo_5.0.32-knbe-custom.tar:docker save --output ~/knbe/images/mongo_5.0.32-knbe-custom.tar mongo:5.0.32-knbe-custom
- Создайте и запустите контейнер на устройстве:
docker run -d \
--name mongo \
--hostname mongo \
--network knaas_aio_int \
-p 27017:27017 \
-v orc_dbs_data:/data/db \
-v ~/knbe/ssl/ca/certificate.pem:/ssl/certs/ca/cert.pem:ro \
-v ~/knbe/ssl/mongo/combined.pem:/ssl/certs/mongo/combined.pem:ro \
-e TZ=Europe/Moscow \
--restart unless-stopped \
mongo:5.0.32-knbe-custom \
mongod --bind_ip_all \
--replSet knaas \
--tlsMode requireTLS \
--tlsCertificateKeyFile /ssl/certs/mongo/combined.pem \
--tlsCAFile /ssl/certs/ca/cert.pem \
--tlsDisabledProtocols TLS1_0,TLS1_1
- Проверьте логи и дождитесь готовности настройки контейнера:
docker logs mongo --tail 20
- Выполните инициализацию
replica set:docker exec -i mongo mongo --tls \
--tlsCertificateKeyFile /ssl/certs/mongo/combined.pem \
--tlsCAFile /ssl/certs/ca/cert.pem <<EOF
rs.initiate({
_id: 'knaas',
version: 1,
members: [{ _id: 0, host: 'mongo:27017' }]
})
EOF
Вы можете проверить статус инициализации с помощью следующей команды:
docker exec mongo mongo --tls \
--tlsCertificateKeyFile /ssl/certs/mongo/combined.pem \
--tlsCAFile /ssl/certs/ca/cert.pem \
--eval "rs.status()"
- Создайте администратора базы данных:
docker exec -i mongo mongo --tls \
--tlsCertificateKeyFile /ssl/certs/mongo/combined.pem \
--tlsCAFile /ssl/certs/ca/cert.pem <<EOF
db.getSiblingDB("admin").createUser({
user: "admin",
pwd: "$MONGO_ADMIN_PASS",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "root", db: "admin" }
]
})
EOF
- Создайте пользователя приложения
knaas:docker exec -i mongo mongo --tls \
--tlsCertificateKeyFile /ssl/certs/mongo/combined.pem \
--tlsCAFile /ssl/certs/ca/cert.pem <<EOF
db.getSiblingDB("admin").auth("admin", "$MONGO_ADMIN_PASS");
db.getSiblingDB("knaas").createUser({
user: "knaas",
pwd: "$MONGO_KNAAS_PASS",
roles: ["readWrite"]
})
EOF
MongoDB будет настроен.
Redis
Чтобы установить и настроить Redis на Ubuntu 22.04, выполните следующие команды:
- Создайте том Docker volume на устройстве:
docker volume create redis_data
Вы можете проверить созданный Docker volume с помощью следующей команды:
docker volume ls | grep -E "redis"
- Загрузите образ Redis
redis:6.2.20для Ubuntu 22.04 из Docker Hub:docker pull redis:6.2.20
- Запустите контейнер на устройстве:
docker run -d \
--name redis \
--network knaas_aio_int \
-p 6379:6379 \
-v redis_data:/data \
-v ~/knbe/ssl/ca/certificate.pem:/ssl/certs/ca/ca.pem:ro \
-v ~/knbe/ssl/redis/cert.pem:/ssl/certs/redis/cert.pem:ro \
-v ~/knbe/ssl/redis/key.pem:/ssl/keys/redis/key.pem:ro \
--restart unless-stopped \
redis:6.2.20 \
redis-server --port 0 \
--bind 0.0.0.0 \
--tls-port 6379 \
--tls-replication yes \
--tls-cert-file /ssl/certs/redis/cert.pem \
--tls-key-file /ssl/keys/redis/key.pem \
--tls-ca-cert-file /ssl/certs/ca/ca.pem
Вы можете проверить логи с помощью следующей команды:
docker logs redis --tail 10
Redis на Ubuntu 22.04 будет установлен и настроен.
Чтобы установить и настроить Redis на Astra Linux 1.8.3, выполните следующие команды:
- Создайте том Docker volume на устройстве:
docker volume create redis_data
Вы можете проверить созданный Docker volume с помощью следующей команды:
docker volume ls | grep -E "redis"
- Загрузите образ Redis
ubi18-redis7015:1.8.3для Astra Linux 1.8.3 из Astra Container Registry:docker pull registry.astralinux.ru/library/astra/ubi18-redis7015:1.8.3
Вы можете проверить загруженный образ с помощью следующей команды:
docker images
- Создайте директорию для конфигурационного файла Redis:
mkdir -p ~/knbe/redis-config
- Создайте конфигурационный файл Redis:
cat > ~/knbe/redis-config/redis.conf <<'EOF'
port 0
bind 0.0.0.0
protected-mode no
tls-port 6379
tls-cert-file /ssl/certs/redis/cert.pem
tls-key-file /ssl/keys/redis/key.pem
tls-ca-cert-file /ssl/certs/ca/ca.pem
tls-auth-clients yes
tls-replication yes
dir /data
appendonly yes
appendfsync everysec
loglevel notice
EOF
- Настройте права доступа к сертификатам и закрытому ключу Redis:
chmod 644 ~/knbe/ssl/redis/key.pem
chmod 644 ~/knbe/ssl/redis/cert.pem
chmod 644 ~/knbe/ssl/ca/certificate.pem
- Запустите контейнер Redis:
docker run -d \
--name redis \
--network knaas_aio_int \
-p 6379:6379 \
-v redis_data:/data \
-v ~/knbe/redis-config/redis.conf:/etc/redis/redis.conf:ro \
-v ~/knbe/ssl/ca/certificate.pem:/ssl/certs/ca/ca.pem:ro \
-v ~/knbe/ssl/redis/cert.pem:/ssl/certs/redis/cert.pem:ro \
-v ~/knbe/ssl/redis/key.pem:/ssl/keys/redis/key.pem:ro \
--restart unless-stopped \
registry.astralinux.ru/library/astra/ubi18-redis7015:1.8.3 \
redis-server /etc/redis/redis.conf
- Проверьте подключение к Redis по протоколу TLS:
docker exec redis redis-cli --tls \
--cert /ssl/certs/redis/cert.pem \
--key /ssl/keys/redis/key.pem \
--cacert /ssl/certs/ca/ca.pem \
ping
Redis на Astra Linux 1.83 будет установлен и настроен.
Если Redis не запускается и процесс завершается с ошибкой доступа на чтение ключа key.pem, выполните команду chmod 644 ~/knbe/ssl/redis/key.pem и перезапустите контейнер Redis:
docker stop redis
docker rm redis
После этого повторите команду запуска Redis из пункта 3 этой инструкции.
Веб-сервис оркестратора
Чтобы установить и настроить компоненты, выполните следующие команды:
- Загрузите образ контейнера в Docker engine, выполнив одну из следующих команд:
- Если образ оркестратора поставляется в TAR формате, выполните команду:
docker load -i ~/knbe/images/knbe-*.tar
- Если образ оркестратора поставляется в TGZ формате OCI, выполните команду (Docker автоматически распознает структуру OCI):
docker load -i ~/knbe/images/knbe-*.tgz
Запишите точный тег загруженного образа (например,
knaas-knbe:1.1.0.release.27.cis.amd64_en-US_ru-RU). Он будет нужен при запуске контейнера.Вы можете проверить загруженный образ с помощью следующей команды:
docker images
- Если образ оркестратора поставляется в TAR формате, выполните команду:
- Создайте том Docker volume на устройстве:
docker volume create orc_data
Вы можете проверить созданный Docker volume с помощью следующей команды:
docker volume ls | grep -E "orc"
- Создайте и запустите контейнер на устройстве, используя тег загруженного образа:
source ~/knbe/orc_vars.env
docker run -d \
--name orc \
--network knaas_aio_int \
-p 8080:8080 \
-v orc_data:/data \
-v ~/knbe/ssl/ca/certificate.pem:/ssl/certs/ca/cert.pem:ro \
-v ~/knbe/ssl/ca/certificate.key:/ssl/keys/ca/key.pem:ro \
-v ~/knbe/ssl/orc/trustStore.p12:/ssl/certs/orc/trustStore.p12:ro \
-v ~/knbe/ssl/orc/keyStore.p12:/ssl/certs/orc/keyStore.p12:ro \
-v ~/knbe/ssl/orc/cert.pem:/ssl/certs/orc/cert.pem:ro \
-v ~/knbe/ssl/orc/key.pem:/ssl/keys/orc/key.pem:ro \
-e TZ=Europe/Moscow \
-e KNAAS_EULA_AGREED=yes \
-e JAVA_OPTS="-Xms2048m -Xmx3560m \
-Dspring.data.mongodb.database=knaas \
-Dorc.security.encryption.password=$ORC_ENC_PASS \
-Dspring.data.mongodb.uri=mongodb://knaas:$MONGO_KNAAS_PASS@mongo/knaas?replicaSet=knaas&tls=true \
-Dspring.redis.redisson.single-server-config.address=rediss://redis:6379 \
-Dspring.redis.redisson.single-server-config.ssl-truststore=file:///ssl/certs/orc/trustStore.p12 \
-Dspring.redis.redisson.single-server-config.ssl-truststore-password=$ORC_KEY_PASS \
-Dspring.redis.redisson.single-server-config.ssl-keystore=file:///ssl/certs/orc/keyStore.p12 \
-Dspring.redis.redisson.single-server-config.ssl-keystore-password=$ORC_KEY_PASS \
-Dorc.openflow.tls.ca-private.certificate.path=/ssl/keys/ca/key.pem \
-Dorc.openflow.tls.ca-public.certificate.path=/ssl/certs/ca/cert.pem \
-Dgrpc.tls.certificate.path=/ssl/certs/orc/cert.pem \
-Dgrpc.tls.private.key.path=/ssl/keys/orc/key.pem \
-Dgrpc.tls.ca.certificate.path=/ssl/certs/ca/cert.pem \
-Dserver.ssl.enabled=true \
-Dserver.ssl.trust-store=/ssl/certs/orc/trustStore.p12 \
-Dserver.ssl.trust-store-password=$ORC_KEY_PASS \
-Dserver.ssl.trust-store-type=pkcs12 \
-Dserver.ssl.key-store=/ssl/certs/orc/keyStore.p12 \
-Dserver.ssl.key-store-password=$ORC_KEY_PASS \
-Dserver.ssl.key-store-type=pkcs12 \
-Dorc.sdn.grpc.timeout=60s" \
--restart unless-stopped \
<Тег загруженного образа><Тег загруженного образа> – это тег образа (например, knaas-knbe:1.1.0.release.27.cis.amd64_en-US_ru-RU), который автоматически задается при загрузке образа контейнера в Docker engine. Вы можете посмотреть загруженные образы с помощью команды
docker images.Вы можете проверить логи с помощью следующей команды:
docker logs orc --tail 50
Рабочая среда оркестратора будет сформирована.
Остановка контейнеров
Вы можете остановить все контейнеры, выполнив следующую команду:
docker stop mongo redis orc
Если вы хотите удалить все данные контейнеров, выполните следующие команды:
docker stop mongo redis orc;
docker rm mongo redis orc;
docker volume rm orc_dbs_data redis_data orc_data