Установка SonarQube с Docker Compose
Данная статья предназначена для тех, кто искал подробное и понятное руководство о том, как установить SonarQube с Docker Compose.
SonarQube — это платформа с открытым исходным кодом для непрерывного анализа и измерения качества программного кода.
В этом руководстве мы будем рассматривать тот случай, когда у вас уже есть сервер с установленной на нем операционной системой Ubuntu Server 22.04 LTS.
Подробно о том, как установить Ubuntu Server 22.04 LTS, вы можете прочитать в моем руководстве “Установка Ubuntu Server 22.04 LTS”.
Также на сервере должен быть установлен Docker Engine и Docker Compose.
Узнать о том, как установить Docker Engine на Ubuntu Server, вы можете, прочитав “Установка Docker Engine и Docker Compose на Ubuntu Server”.
Кроме того, на сервер должен быть установлен OpenSSH, а также открыт 22 порт, чтобы иметь возможность подключаться к серверу по протоколу SSH.
Для установки OpenSSH на сервер вы можете воспользоваться командой:
С рабочей станции переходим по ссылке https://sonarqube.heyvaldemar.net, где sonarqube.heyvaldemar.net — имя моего сервера. Соответственно, вам необходимо указать имя вашего сервера SonarQube.
Теперь можно войти в панель управления SonarQube под учетной записью администратора SonarQube.
Логин для учетной записи администратора SonarQube по умолчанию: admin
Пароль для учетной записи администратора SonarQube по умолчанию: admin
Указываем имя пользователя и пароль учетной записи, обладающей правами администратора SonarQube, и нажимаем на кнопку “Log in”.
Далее необходимо изменить стандартный пароль на более надежный.
Указываем старый пароль в поле “Old Password”.
Указываем надежный пароль в поле “New Password и “Confirm Password”.
Нажимаем на кнопку “Update”.
Добро пожаловать в панель управления SonarQube.
Для доступа к панели управления Traefik необходимо с рабочей станции перейти по ссылке https://traefik.sonarqube.heyvaldemar.net, где traefik.sonarqube.heyvaldemar.net — имя моего сервера. Соответственно, вам необходимо указать имя вашего сервера с установленным Traefik.
Указываем имя пользователя и пароль, заданный ранее в конфигурационном файле YAML, и нажимаем на кнопку “OK”.
Добро пожаловать в панель управления Traefik.
🐳 Анализ кода с помощью SonarQube на Docker
Мануал
Установка и настройка SonarQube
Я раньше использовал codelyzer, и в некотором смысле он очень похож на tslint.
Однако я хотел протестировать что-то новое и подумал, что на этот раз давайте попробуем SonarQube.
SonarQube – это инструмент для автоматического анализа кода, позволяющий обнаруживать ошибки, уязвимости и кода смелл в вашем коде.
Он может интегрироваться с существующим рабочим процессом для обеспечения непрерывной проверки кода в ветках вашего проекта и получения запросов.
Он имеет серверный компонент, где вы можете создавать проекты и применять конфигурации, такие как добавление плагинов и обновление существующих.
И еще есть компонент сканера, который сканирует вашу кодовую базу и отправляет результат на сервер для отображения на панели мониторинга SonarQube.
Существует несколько версий SonarQube, но мы собираемся использовать версию сообщества, которая является бесплатной и с открытым исходным кодом.
Так что без дальнейших церемоний, давайте к делу.
Установка
Документация действительно отличная, о днако вскоре я понял, что мне нужно установить множество зависимостей, чтобы это все работало.
Я подумал о том, как избежать лишних установок, и все стало проще, когда я увидел образ Docker.
В Docker Hub вы можете найти информацию, необходимую для начала работы, но для целей этой статьи я просто использую одну команду, чтобы начать работу.
docker run -d --name sonarqube -p 9000:9000 sonarqube
Запустит контейнер в фоновом режиме, а затем выставит порт 9000 на хосте.
После этого вам нужно подождать несколько минут для запуска сервера.
Sonarqube пароль и логин по умолчанию
Создание проекта
Я не хочу углубляться в SonarQube, но проект представляет собой базу кода, где вы можете увидеть результаты сканирования, выполненного сканером.
После входа в систему нажмите кнопку «create a new project» в центре страницы, затем введите уникальный ключ проекта и отображаемое имя.
На следующей странице введите имя для вашего токена проекта.
Это ключ, который сканер будет использовать для аутентификации на сервере и отправки результатов сканирования.
Запишите этот ключ, так как вы никогда его не больще увидите, когда уйдете с этой страницы.
Нажмите Continue, и вы увидите экран, где вы можете указать конфигурацию вашего проекта.
Выберите необходимые компоненты.
Скачивание сканера
На этом этапе вам необходимо скачать сканер и разархивировать его в папку с именем sonarqube на вашем диске.
Я обычно использую инструменты c:\ для такого рода использования (замените его тем, что вы использовали, если вы решили разархивировать его в другом месте).
После этого откройте файл конфигурации сканера с именем sonar-scanner.properties из папки c:\tools\sonarqube\config и раскомментируйте строку, в которой указан адрес сервера.
#Configure here general information about the environment, such as SonarQube server connection details for example #No information about specific project should appear here #----- Default SonarQube server sonar.host.url=http://localhost:9000 #----- Default source code encoding sonar.sourceEncoding=UTF-8
Запуск сканирования
Как только вы закончите, вы готовы к работе.
Запустите приведенную ниже команду из корня проекта и дождитесь окончания сканирования.
C:\tools\sonar\bin\sonar-scanner.bat -D"sonar.projectKey=fp" -D"sonar.sources=." -D"sonar.host.url=http://localhost:9000" -D"sonar.login=**********************************" -D"sonar.exclusions=node_modules/**/*"
💡 На последнем шаге, когда вы загрузили zip-файл сканера, команда, которую необходимо выполнить, записана для того, чтобы вы были готовы к работе, просто добавьте папку exclude, чтобы избежать анализа кода во внешних библиотеках.
ℹ️ Не забудьте запустить npm install или yarn, если вы только что раздвоили базу кода из своего git-репозитория. Я столкнулся с несколькими ошибками, прежде чем понял, что они не установлены, и они используются сканером.
Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
- Аудит ИБ (49)
- Вакансии (12)
- Закрытие уязвимостей (105)
- Книги (27)
- Мануал (2 306)
- Медиа (66)
- Мероприятия (39)
- Мошенники (23)
- Обзоры (820)
- Обход запретов (34)
- Опросы (3)
- Скрипты (114)
- Статьи (352)
- Философия (114)
- Юмор (18)
Anything in here will be replaced on browsers that support the canvas element
OpenVPN Community Edition (CE) – это проект виртуальной частной сети (VPN) с открытым исходным кодом. Он создает защищенные соединения через Интернет с помощью собственного протокола безопасности, использующего протокол SSL/TLS. Этот поддерживаемый сообществом проект OSS (Open Source Software), использующий лицензию GPL, поддерживается многими разработчиками и соавторами OpenVPN Inc. и расширенным сообществом OpenVPN. CE является бесплатным для […]
Что такое 404 Frame? Большинство инструментов для взлома веб-сайта находятся в 404 Frame. Итак, что же представляют собой команды? Вы можете отдавать команды, используя повседневный разговорный язык, поскольку разработчики не хотели выбирать очень сложную систему команд. Команды Команды “help” / “commands” показывают все команды и их назначение. Команда “set target” – это команда, которая должна […]
В этой заметке вы узнаете о блокировке IP-адресов в Nginx. Это позволяет контролировать доступ к серверу. Nginx является одним из лучших веб-сервисов на сегодняшний день. Скорость обработки запросов делает его очень популярным среди системных администраторов. Кроме того, он обладает завидной гибкостью, что позволяет использовать его во многих ситуациях. Наступает момент, когда необходимо ограничить доступ к […]
Знаете ли вы, что выполняется в ваших контейнерах? Проведите аудит своих образов, чтобы исключить пакеты, которые делают вас уязвимыми для эксплуатации Насколько хорошо вы знаете базовые образы контейнеров, в которых работают ваши службы и инструменты? Этот вопрос часто игнорируется, поскольку мы очень доверяем им. Однако для обеспечения безопасности рабочих нагрузок и базовой инфраструктуры необходимо ответить […]
Одной из важнейших задач администратора является обеспечение обновления системы и всех доступных пакетов до последних версий. Даже после добавления нод в кластер Kubernetes нам все равно необходимо управлять обновлениями. В большинстве случаев после получения обновлений (например, обновлений ядра, системного обслуживания или аппаратных изменений) необходимо перезагрузить хост, чтобы изменения были применены. Для Kubernetes это может быть […]