Установка и настройка компонентов на одном устройстве

06 октября 2026

ID 327915

Для работы оркестратора установите и настройте MongoDB, Redis и контейнеры оркестратора. Перед запуском контейнеров создайте Docker-сеть на устройстве.

MongoDB

Для использования MongoDB необходимо включить у CPU расширение системы команд AVX. Для этого в виртуальной среде (VMware, Proxmox) задайте режим CPU host или host-passthrough.

Для работы оркестратора соберите Docker-контейнер MongoDB из архива MongoDB, входящего в комплект поставки Kaspersky NGFW.

Чтобы установить и настроить MongoDB, выполните следующие команды:

  1. Создайте Docker volume на устройстве:

    docker volume create orc_dbs_data

    Вы можете проверить созданный Docker volume с помощью следующей команды:

    docker volume ls | grep -E "orc"

  2. Перейдите в директорию для файлов 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*

  3. Задайте переменную среды:

    Если вы выполняете этот шаг на Astra Linux, выполните команду:

    export BASE_IMAGE=registry.astralinux.ru/library/astra/ubi18:1.8.3

    Если вы выполняете этот шаг на Ubuntu, выполните команду:

    export BASE_IMAGE=ubuntu:22.04

  4. Создайте файл 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

  5. Соберите Docker-контейнер MongoDB:

    docker build -t mongo:5.0.32-knbe-custom .

  6. Сохраните образ в архив 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

  7. Создайте и запустите контейнер на устройстве:

    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

  8. Проверьте логи и дождитесь готовности настройки контейнера:

    docker logs mongo --tail 20

  9. Выполните инициализацию 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()"

  10. Создайте администратора базы данных:

    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

  11. Создайте пользователя приложения 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, выполните следующие команды:

  1. Создайте том Docker volume на устройстве:

    docker volume create redis_data

    Вы можете проверить созданный Docker volume с помощью следующей команды:

    docker volume ls | grep -E "redis"

  2. Загрузите образ Redis redis:6.2.20 для Ubuntu 22.04 из Docker Hub:

    docker pull redis:6.2.20

  3. Запустите контейнер на устройстве:

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, выполните следующие команды:

  1. Создайте том Docker volume на устройстве:

    docker volume create redis_data

    Вы можете проверить созданный Docker volume с помощью следующей команды:

    docker volume ls | grep -E "redis"

  2. Загрузите образ 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

  3. Создайте директорию для конфигурационного файла Redis:

    mkdir -p ~/knbe/redis-config

  4. Создайте конфигурационный файл 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

  5. Настройте права доступа к сертификатам и закрытому ключу Redis:

    chmod 644 ~/knbe/ssl/redis/key.pem

    chmod 644 ~/knbe/ssl/redis/cert.pem

    chmod 644 ~/knbe/ssl/ca/certificate.pem

  6. Запустите контейнер 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

  7. Проверьте подключение к 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 этой инструкции.

Веб-сервис оркестратора

Чтобы установить и настроить компоненты, выполните следующие команды:

  1. Загрузите образ контейнера в 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

  2. Создайте том Docker volume на устройстве:

    docker volume create orc_data

    Вы можете проверить созданный Docker volume с помощью следующей команды:

    docker volume ls | grep -E "orc"

  3. Создайте и запустите контейнер на устройстве, используя тег загруженного образа:

    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

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!