Развёртывание
Production-развёртывание NRunner состоит из обязательного основного контура и необязательного контура локальной базы уязвимостей.
Основной контур
Основной контур является обязательным. Он включает web-интерфейс, backend, основную БД, Redis и сервис подготовки агентских бинарных файлов.
Контур использует файл compose/main/docker-compose.prod.server-client.yml и запускает:
| Сервис | Назначение |
|---|---|
nrunner-client | Web-интерфейс |
nrunner-server | Основной backend и API |
db | Основная PostgreSQL БД |
cache | Redis для кэша и служебного состояния |
db-migrate | Миграции основной БД |
nrunner-agent-export | Подготовка агентских бинарных файлов |
Подробный порядок запуска приведён на странице Развёртывание клиента и сервера сканирования.
Контур базы уязвимостей
Локальная база уязвимостей разворачивается отдельно. Контур применяется в изолированных средах, а также в случаях, когда данные об уязвимостях должны храниться и сопровождаться внутри инфраструктуры организации.
Контур использует файл compose/vulndb/docker-compose.prod.vulndb.yml и запускает:
| Сервис | Назначение |
|---|---|
db | PostgreSQL БД уязвимостей |
db-migrate | Миграции БД уязвимостей |
api-service | HTTP API базы уязвимостей |
Подробный порядок запуска приведён на странице Развёртывание базы уязвимостей.
Как связаны контуры
nrunner-clientобращается к backend поNRUNNER_API_URL.nrunner-serverиспользует основную PostgreSQL БД, Redis и vulnerability API.api-serviceиспользует собственную PostgreSQL БД.- Агент сканирования не входит в compose-стек и устанавливается отдельно на целевые хосты.
По умолчанию backend использует публичный vulnerability-сервис https://vulndb.nrunner.ru. Если применяется локальный контур базы уязвимостей, в compose/main/env.server необходимо указать опубликованный адрес api-service через переменную VULN_SERVICE_URL.
Способы установки
Администратор может использовать один из двух способов:
- Установка через CLI - рекомендуемый вариант для стандартного развёртывания;
- Установка через Docker Compose - вариант для ручного контроля команд и диагностики.