Установка и настройка SonarQube

Добро пожаловать в подробное руководство по установке и настройке SonarQube в НАЙС ОС. В этом документе мы рассмотрим процесс установки, настройки и управления SonarQube, включая настройку анализа кода и метрик качества, интеграцию с системами CI/CD, а также настройку отчетов и дашбордов. SonarQube — это платформа для непрерывного анализа кода и оценки качества, которая помогает обнаруживать ошибки, уязвимости и улучшать качество кода. Понимание его установки и конфигурации является важным навыком для разработчиков и DevOps-инженеров.

Установка и конфигурация SonarQube

Установка SonarQube

Для установки SonarQube в НАЙС ОС выполните следующие шаги:

  1. Установите необходимые зависимости, включая Java и PostgreSQL:
  2. sudo tdnf install -y java-11-openjdk postgresql-server
  3. Настройте и запустите PostgreSQL:
  4. sudo systemctl start postgresql
    sudo systemctl enable postgresql
    sudo -u postgres psql
    
    CREATE DATABASE sonarqube;
    CREATE USER sonar WITH PASSWORD 'your_password';
    GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonar;
    \q
        
  5. Скачайте и распакуйте SonarQube:
  6. wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.9.6.50800.zip
    unzip sonarqube-8.9.6.50800.zip
    sudo mv sonarqube-8.9.6.50800 /opt/sonarqube
  7. Создайте системного пользователя для запуска SonarQube:
  8. sudo useradd -r -s /bin/false sonarqube
    sudo chown -R sonarqube:sonarqube /opt/sonarqube

Конфигурация SonarQube

Отредактируйте файл конфигурации /opt/sonarqube/conf/sonar.properties и настройте следующие параметры:


sonar.jdbc.username=sonar
sonar.jdbc.password=your_password
sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube

sonar.web.host=0.0.0.0
sonar.web.port=9000
  

Запуск SonarQube

Создайте системный сервис для SonarQube:


sudo nano /etc/systemd/system/sonarqube.service
  

[Unit]
Description=SonarQube service
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start
ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop
User=sonarqube
Group=sonarqube
Restart=always
LimitNOFILE=65536
LimitNPROC=4096

[Install]
WantedBy=multi-user.target
  

Запустите и включите SonarQube при старте системы:

sudo systemctl start sonarqube
sudo systemctl enable sonarqube

Откройте веб-интерфейс SonarQube по адресу http://your_domain_or_IP:9000 и войдите с учетными данными администратора (по умолчанию логин и пароль: admin).

Настройка анализа кода и метрик качества

Создание и настройка проектов

Для создания и настройки проектов выполните следующие шаги:

  1. Войдите в веб-интерфейс SonarQube под учетной записью администратора.
  2. Перейдите в раздел "Projects" и нажмите "Create Project".
  3. Введите имя и ключ проекта и нажмите "Create".
  4. Настройте параметры анализа, такие как язык программирования и профили качества.

Настройка профилей качества

Профили качества позволяют настраивать правила анализа кода. Для настройки профилей качества выполните следующие шаги:

  1. Перейдите в раздел "Quality Profiles".
  2. Выберите язык программирования и нажмите "Create".
  3. Введите имя профиля и нажмите "Create".
  4. Добавьте или удалите правила анализа по вашему выбору.

Запуск анализа кода

Для запуска анализа кода используйте SonarScanner. Рассмотрим пример запуска анализа кода на Java-проекте:

  1. Скачайте и установите SonarScanner:
  2. wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip
    unzip sonar-scanner-cli-4.6.2.2472-linux.zip
    sudo mv sonar-scanner-4.6.2.2472-linux /opt/sonar-scanner
  3. Настройте переменные окружения для SonarScanner:
  4. export PATH=$PATH:/opt/sonar-scanner/bin
    export SONAR_SCANNER_OPTS="-Xmx512m"
  5. Создайте файл конфигурации sonar-project.properties в корне вашего проекта:
  6. 
    sonar.projectKey=my_project
    sonar.projectName=My Project
    sonar.projectVersion=1.0
    sonar.sources=src
    sonar.language=java
    sonar.sourceEncoding=UTF-8
        
  7. Запустите анализ кода:
  8. sonar-scanner

Интеграция с системами CI/CD

Интеграция с Jenkins

Для интеграции SonarQube с Jenkins выполните следующие шаги:

  1. Установите плагин SonarQube Scanner для Jenkins:
    • Перейдите в раздел "Manage Jenkins" > "Manage Plugins".
    • Выберите вкладку "Available" и найдите "SonarQube Scanner".
    • Установите плагин и перезапустите Jenkins.
  2. Настройте SonarQube в Jenkins:
    • Перейдите в раздел "Manage Jenkins" > "Configure System".
    • Найдите секцию "SonarQube Servers" и нажмите "Add SonarQube".
    • Введите имя и URL вашего сервера SonarQube.
    • Сохраните настройки.
  3. Настройте анализ кода в Jenkins job:
    • Создайте новую задачу или откройте существующую.
    • Перейдите в раздел "Build" и нажмите "Add build step".
    • Выберите "Invoke SonarQube Scanner".
    • Введите путь к конфигурационному файлу SonarQube или настройте параметры анализа напрямую в Jenkins job.
    • Сохраните и запустите задачу.

Интеграция с GitLab CI

Для интеграции SonarQube с GitLab CI выполните следующие шаги:

  1. Добавьте SonarQube токен в переменные CI/CD в настройках вашего проекта GitLab:
    • Перейдите в "Settings" > "CI/CD" > "Variables".
    • Добавьте переменную SONAR_TOKEN с вашим SonarQube токеном.
  2. Добавьте SonarQube шаг в ваш файл .gitlab-ci.yml:
  3. 
    stages:
      - build
      - test
      - sonar
    
    sonar:
      stage: sonar
      image: sonarsource/sonar-scanner-cli:latest
      script:
        - sonar-scanner -Dsonar.projectKey=my_project -Dsonar.sources=. -Dsonar.host.url=http://your_domain_or_IP:9000 -Dsonar.login=$SONAR_TOKEN
      only:
        - master
        - merge_requests
        

Настройка отчетов и дашбордов

Создание и настройка дашбордов

Для создания и настройки дашбордов выполните следующие шаги:

  1. Войдите в веб-интерфейс SonarQube под учетной записью администратора.
  2. Перейдите в раздел "Dashboards" и нажмите "Create Dashboard".
  3. Введите имя дашборда и нажмите "Create".
  4. Добавьте виджеты на дашборд, выбрав "Add Widget" и настроив параметры виджета.

Настройка автоматических отчетов

Для настройки автоматических отчетов выполните следующие шаги:

  1. Перейдите в раздел "Project Settings" > "Background Tasks".
  2. Настройте параметры отчета, такие как частота выполнения и получатели.
  3. Сохраните настройки для завершения настройки автоматических отчетов.

Заключение

Мы рассмотрели основные аспекты установки, настройки и управления SonarQube в НАЙС ОС. SonarQube предоставляет мощные возможности для анализа кода и оценки качества, а понимание его настройки и интеграции с системами CI/CD является важным навыком для разработчиков и DevOps-инженеров. Продолжайте изучать и применять эти знания на практике для создания стабильных и качественных программных продуктов.