Руководство по установке#
Системные требования#
Настройки безопасности окружения и перечень платформенных (дополнительных внешних) продуктов, используемых для установки, настройки и контроля в конечной информационной системе (далее — ИС), выбираются клиентом при разработке конечной ИС, исходя из характера обрабатываемой в ней информации и иных требований информационной безопасности (далее — ИБ), предъявляемых к ней.
Системное программное обеспечение#
Ниже представлены категории системного программного обеспечения (далее — ПО), которые обязательны или опциональны для установки, настройки, контроля и функционирования CodeScanner. В каждой категории перечислены продукты сторонних правообладателей. Отдельно обозначены варианты, которые рекомендует АО «СберТех» (маркировка «Рекомендовано» в столбце «Продукт, функциональная совместимость с которым подтверждена»). Клиенту необходимо выбрать один из продуктов в каждой категории, исходя из условий использования конечной ИС.
Категория ПО |
Обязательность установки |
Наименование ПО |
Версия |
Продукт, функциональная совместимость с которым подтверждена |
Назначение категории ПО |
|---|---|---|---|---|---|
Операционная система |
Да |
ОС Альт 8 СП |
5.4.145 |
Рекомендовано |
ОС контейнеров для запуска модулей компонента CodeScanner |
Средство контейнеризации |
Нет |
20.10.11 |
Рекомендовано |
Инструмент для автоматизации работы с контейнерами |
|
Java-машина |
Да |
8 с последними патчами безопасности |
Рекомендовано |
Окружение для работы модулей компонента CodeScanner |
|
Реляционная СУБД |
Да |
PostgreSQL |
11 |
Рекомендовано. Правообладателем АО «СберТех» также рекомендована СУБД, основанная на PostgreSQL, — Platform V Pangolin SE, см. раздел «Платформенные зависимости» |
Используется для хранения данных сервиса. |
Браузер |
Да |
Яндекс |
19.10+ |
Рекомендовано |
Браузер для входа в UI |
Google Chrome |
79.0+ |
Опционально |
|||
Инструмент автоматической сборки |
Да |
Maven |
3.1.0 |
Опционально |
Инструмент для сборки проекта и запуска анализа кода |
Gradle |
5.1.0 |
Опционально |
|||
Инструмент сборки, тестирования, развертывания приложений |
Да |
Jenkins |
2.3 |
Рекомендовано. Правообладателем АО «СберТех» также рекомендован инструмент оркестрации этапов CI/CD, основанный на Jenkins, — Platform V Works::Pipeliner, см. раздел «Платформенные зависимости» |
Интегрированная платформа для проксирования, хранения и управления зависимостями Java (Maven), образами, а также распространения ПО |
Примечание:
*
Да — категория ПО обязательна для функционирования сервиса (это означает, что сервис не может выполнять свои основные функции без установки данной категории ПО).
Нет — категория ПО необязательна для функционирования сервиса (это означает, что сервис может выполнять свои основные функции без установки данной категории ПО).
**
Рекомендовано — рекомендованный правообладателем АО «СберТех» продукт.
Опционально — альтернативный по отношению к рекомендованному правообладателем АО «СберТех» продукт.
Платформенные зависимости#
Для настройки, контроля и функционирования CodeScanner реализована интеграция с программными продуктами, правообладателем которых является АО «СберТех»:
Наименование продукта |
Код |
Версия продукта |
Код и наименование компонента |
Обязательность установки (да/нет) |
Описание |
Аналог других производителей |
|---|---|---|---|---|---|---|
Platform V Works::Pipeliner |
CID |
1.4.0 |
JSSE / Оркестровщик CI/CD (CIWork, CDWork) |
Нет |
Инструмент оркестрации этапов CI/CD |
Jenkins 2.384 |
Platform V Works::OneWork |
SSD |
1.3.0 |
SSDP / Сервис самообслуживания в инструментах DevOps (OneWork) |
Да |
Универсальная инструментальная платформа для реализации всего жизненного цикла разработки и совместной работы |
Azure DevOps 2022 |
Platform V Pangolin SE |
PSQ |
5.1.0 и выше |
PSQL Platform V Pangolin |
Да |
Система управления базами данных, основанная на PostgreSQL |
PostgreSQL 11 |
Примечание:
***
Да — компонент или продукт необходим для функционирования сервиса (это означает, что сервис не может выполнять свои основные функции без установки данного компонента).
Нет — необязательный для функционирования сервиса компонент или продукт (это означает, что сервис может выполнять свои основные функции без установки данного компонента).
**** Рекомендуется установка программного продукта, правообладателем которого является АО «СберТех», при этом не исключена возможность (допускается правообладателем) использования аналога других производителей. Аналоги, в отношении которых продукт успешно прошел испытания и подтвердил свою работоспособность, указаны в разделе «Системное программное обеспечение».
Аппаратные требования#
Для установки и эксплуатации компонента требуется следующая конфигурация аппаратного обеспечения:
Минимальные аппаратные требования:
2 ядра CPU;
3 ГБ оперативной памяти (1 ГБ для системы, 2 ГБ для CodeScanner);
10 ГБ дискового пространства.
Рекомендуемые аппаратные требования:
8 ядер CPU;
16 ГБ оперативной памяти;
32 ГБ дискового пространства (объем необходимого дискового пространства зависит от того, какой объем кода требуется анализировать с помощью CodeScanner).
Требования к промышленной нагрузке рассчитываются индивидуально в зависимости от предполагаемой нагрузки.
Минимальный размер (резерв) свободного дискового пространства рекомендуется поддерживать согласно нормативным документам эксплуатирующей организации, а при отсутствии таковых — не меньшим, чем обеспечивающим расход в течение 15 дней в темпе, максимальном за последний год эксплуатации компонента.
В случае необходимости выбора между процессором с более высокой тактовой частотой и процессором с большим количеством ядер, рекомендуется выбрать процессор с большим количеством ядер. Многоядерность позволяет обеспечить более высокое быстродействие системы.
Рекомендации по построению кластера#
Все серверы, включая сервер БД компонента, должны быть расположены в одном месте и иметь статические IP-адреса (ссылка через имя хоста не поддерживается). Сетевой трафик не должен быть ограничен между приложением и поисковыми узлами.
Все узлы приложений и узлы поиска должны быть идентичны с точки зрения аппаратного и программного обеспечения. Однако, как правило, узлы поиска требуют больший объем оперативной памяти и количество ядер процессора, чем узлы приложений.
Для построения кластера (до 200 млн строк) можно использовать следующую конфигурацию:
App Node (Узел приложения): 4 CPU, 16 Гбайт ОЗУ;
Search Node (Узел поиска): 8 CPU, 32 Гбайт ОЗУ;
Прокси-сервер должен обеспечивать возможность балансировки HTTP-запросов (нагрузки) между узлами приложения в кластере CodeScanner.
Рекомендуется использовать SSD диск, вместо HDD, так как скорость обмена данными будет значительно быстрее.
Конфигурация Java#
Настройка установки Java#
Если на сервере установлено несколько версий Java, то может потребоваться явно указать, какая версия Java должна использоваться.
Чтобы изменить Java JVM, используемую CodeScanner, нужно отредактировать
$CodeScanner-HOME/conf/wrapper.conf и обновить следующую строку:
wrapper.java.command=/path/to/my/jdk/bin/java
Установка JDK для использования задачей#
Можно установить версию JDK, которая будет использоваться задачей, в разделе конфигурации «Общие». Этот параметр виден только в том случае, если настроены несколько версий JDK в разделе «Управление CID» > «Глобальная конфигурация инструмента».
Установка JDK для «Execute CodeScanner Scanner»#
Если в конвейере используется шаг «Execute CodeScanner Scanner», то можно установить JDK для этого шага в диалоговом окне конфигурации. Для всех остальных шагов задания будет использоваться глобально настроенный JDK.
Java 8 проекты#
Pipeliner не предусматривает функциональности для переключения JDK при использовании «Freestyle» или Maven проекта.
Для создания проекта с использованием Java 8, необходимо вручную
установить значение для переменной JAVA_HOME. Для этого нужно использовать плагин «Tool Environment». Этот плагин позволяет указать местоположение JDK,
добавленного в разделе «Настроить CID» > «Глобальная конфигурация инструмента». Затем местоположение JDK можно
использовать для установки переменной JAVA_HOME в команде post step, например:
export JAVA_HOME=$OPENJDK_11_HOME/Contents/Home
mvn $SONAR_MAVEN_GOAL
Установка#
Установка и запуск с помощью Dockerfile#
Распакуйте архив с дистрибутивом и перейдите в папку с дистрибутивом.
При необходимости поменяйте базовый образ и/или порт сервиса и отредактируйте файл install.sh в части задания переменных окружения.
Запустите файл install.sh.
Ручная установка#
Установка CodeScanner#
Скачайте и разархивируйте дистрибутив в директорию с именем, не начинающимся с цифры.
CodeScanner нельзя запустить как корневую службу в системах на базе Unix, поэтому при необходимости нужно создать специальную учетную запись пользователя для CodeScanner.
$CodeScanner-HOME указывает путь к каталогу, в который был разархивирован дистрибутив CodeScanner.
Подготовка базы данных#
Создайте пустую схему и CodeScanner-пользователя.
Предоставьте данному CodeScanner-пользователю разрешения на создание, обновление и удаление объектов для этой схемы.
Если нужно использовать пользовательскую схему, а не общедоступную по умолчанию, в
search_path необходимо установить название таблицы PostgreSQL:
ALTER USER mySonarUser SET search_path to myCodeScannerSchema
Подключение к базе данных#
Отредактируйте файл $CodeScanner-HOME/conf/sonar.properties, чтобы настроить параметры базы данных:
sonar.jdbc.username=myname
sonar.jdbc.password=mypassword
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube
Установка плагинов#
Для корректной работы необходимо установить плагины sonarqube-community-branch-plugin-1.8.1 и sonar-auth-oidc-plugin-2.1.1.
Чтобы установить плагин, выполните следующие действия:
Загрузите плагин, который требуется установить. Версия должна быть совместима с версией CodeScanner.
Поместите загруженный плагин в папку $CodeScanner-HOME/extensions/plugins и удалите все предыдущие версии тех же плагинов.
Перезапустите сервер CodeScanner.
Настройка интеграции с SSD#
Интеграция с SSD обеспечивает взаимодействие CodeScanner с Platform V Works::Pipeliner и другими доступными сервисами в одном интерфейсе.
Параметры интеграции#
Боковое меню использует переменные окружения, задаваемые:
в качестве аргументов к Docker;
в конфигурационном файле (при локальном запуске).
Переменная |
Назначение |
Значение по умолчанию |
|---|---|---|
|
атрибут ssd-ui-admin-url для side-menu |
|
|
атрибут tool-key для side-menu |
|
|
используется для формирования ключей пунктов меню |
|
Сборка и подключение#
Выполните команду
./gradlew buildдля сборки.Распакуйте собранный архив.
Перейдите в папку /frontend и выполните следующие команды:
npm ci;npm run build.
Скопируйте содержимое папки dist в папку web распакованного архива.
Запуск веб-сервера#
Порт по умолчанию — 9000, а контекстный путь — /. Эти значения можно изменить в файле
$CodeScanner-HOME/conf/sonar.properties:
sonar.web.host=192.168.0.1
sonar.web.port=80
sonar.web.context=/sonarqube
Выполните следующий скрипт, чтобы запустить сервер:
bin/linux-x86-64/sonar.sh
CodeScanner доступен по адресу http://localhost:9000.
Добавление драйвера JDBC#
Драйверы для поддерживаемых баз данных уже предустановлены в системе. Не заменяйте предустановленные драйверы, так как только они поддерживаются.
Период жизни DNS-кеш CodeScanner#
При отправке отчетов о статусе Quality Gate платформам DevOps, CodeScanner имеет 30-секундный период жизни кеша DNS. При необходимости можно изменить этот параметр в JVM:
echo "networkaddress.cache.ttl=5" >> "${JAVA_HOME}/conf/security/java.security"
Обновление#
Удаление предыдущей версии CodeScanner перед обновлением не требуется.
Для обновления версии CodeScanner выполните следующие действия:
Выполните резервное копирование БД.
Загрузите и разархивируйте новый дистрибутив CodeScanner в новый каталог, например
$NEW_CodeScanner_HOME.Если используются сторонние плагины, вручную установите плагины, совместимые с новой версией CodeScanner. Копирование плагинов со старого сервера на новый не рекомендуется, так как несовместимые или повторяющиеся плагины могут вызвать ошибки запуска. Анализ всех языков, поддерживаемых версией компонента в базовой конфигурации, не требует использования плагинов.
Обновите содержимое файлов sonar.properties и wrapper.conf в $NEW_CodeScanner_HOME/conf настройками из соответствующих файлов в каталоге $OLD_CodeScanner_HOME/conf (URL-адрес веб-сервера, база данных, настройки LDAP и т. д.). Не копируйте и не вставляйте старые файлы.
Остановите старый сервер CodeScanner.
Запустите новый сервер CodeScanner.
Перейдите по адресу
http://{CodeScanner-your-server-url:port}/setupи следуйте инструкциям по установке.Для актуализации результатов сканирования повторно проанализируйте проекты.
Удаление#
Удаление сервиса#
Для удаления сервиса необходимо удалить каталог установки CodeScanner.
Удаление информации из БД#
Для удаления информации из БД необходимо очистить или удалить БД, используемую для работы CodeScanner.
Проверка работоспособности#
Для проверки работоспособности CodeScanner необходимо выполнить следующие действия:
Обратитесь по адресу
http://{code_scanner-ipAddress}:9000, где{code_scanner-ipAddress}— адрес сервера CodeScanner. В появившемся окне авторизуйтесь: введите логин и пароль. Убедитесь, что открылась главная страница CodeScanner.Перейдите в раздел «Сканирования» и проконтролируйте отображение списка сканирований (непосредственно после установки компонента и до выполнения первого сканирования данный список пуст).
Поочередно перейдите в каждый подраздел бокового меню. Проконтролируйте соответствие отображаемой информации названию подраздела.
Создайте и настройте новое сканирование и выполните анализ проекта. Проконтролируйте успешное создание сканирования и завершение анализа проекта.
Проконтролируйте успешное формирование отчета анализа проекта на странице сканирования в подразделах «Обзор», «Замечания», «Потенциальные уязвимости», «Показатели», «Код», «Активность».
Перейдите на страницу ранее просканированного проекта и проконтролируйте отображение информации о сканировании, отчета анализа проекта, уязвимостей в подразделах «Обзор», «Замечания», «Потенциальные уязвимости», «Показатели», «Код», «Активность».
Проконтролируйте отсутствие возможности выполнения действий, заведомо недоступных текущему пользователю согласно выданной роли.
Работоспособность подтверждается, если каждая из перечисленных операций выполнена успешно и без сообщений об ошибках, а объем отображаемых данных соответствует настройкам прав пользователя.
Откат#
Удаление предыдущей версии CodeScanner перед откатом не требуется.
Для отката к предыдущей версии CodeScanner необходимо выполнить следующие действия:
Выполните резервное копирование БД.
Остановить сервер CodeScanner.
Откатить базу данных CodeScanner до резервной копии, сделанной перед началом обновления.
Установить предыдущую версию CodeScanner, как описано в разделе Установка.
Запустить сервер CodeScanner.
Часто встречающиеся проблемы и пути их устранения#
В текущей версии типовые проблемы не выявлены. В случаях сбоев диагностику ситуации следует начинать со следующих проверок:
подключения клиента (компьютера пользователя) к сети;
доступности сервера CodeScanner - проверка доступности страниц сервиса;
в случае неудачной аутентификации необходимо обратить внимание на корректность введенных учетных данных пользователя.
Чек-лист валидации установки#
Архив с дистрибутивом распакован.
Файл install.sh успешно запущен.
Установка компонента выполнена успешно согласно инструкциям, изложенным в разделе Установка настоящего Руководства:
Выполнены все шаги установки компонента.
При выполнении шагов установки компонента ошибки отсутствовали.
Успешно выполнены все действия раздела Проверка работоспособности настоящего Руководства.
Успешно настроена интеграция с программными продуктами. Подробности приведены в подразделе Платформенные зависимости и Установка настоящего Руководства.