更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 鸿蒙开发Linux教程 > 在Debian 11 Linux系统上安装和配置SonarQube

在Debian 11 Linux系统上安装和配置SonarQube

更新时间:2023-04-27 09:32:39浏览次数:128+次

在本指南中,我们将系统地介绍如何在Debian 11 Linux上安装和配置SonarQube的方法。

前言

在我们开始安装SonarQube之前,请确保您有以下条件:

具有64位Debian 11系统,因为SonarQube不支持32位系统,请使用uname -m来确定您的体系结构。

具有sudo权限的用户。

至少2GB RAM。

2vCPU内核。

您还需要安装Debian 11系统更新和所需的工具:

sudo apt update

sudo apt install net-tools wget unzip vim curl

另外,得编辑/etc/sysctl.conf中的文件,以满足所需的SonarQube要求:

sudo vim /etc/sysctl.conf

将下面的行添加到文件中:

vm.max_map_count=262144

fs.file-max=65536

重新加载sysctl配置:

sudo sysctl --system

在Debian 11 Linux系统上安装和配置SonarQube的详细步骤

步骤1、在Debian 11上安装Java 11

由于SonarQube是用Java编写的,因此它需要Java才能发挥作用。我们将在Debian 11上安装Java OpenJDK 11,如下所示:

sudo apt install openjdk-11-jdk

验证您的Java安装:

$ java -version

Openjdk version "11.0.12"

步骤2、在Debian 11上安装PostgreSQL数据库

SonarQube支持PostgreSQL、Oracle(XE扩展、11G、12C、18C、19C和MSSQL for Windows系统。在本指南中,我们将使用SonarQobe的PostgreSQL数据库。在Debian 11上安装PostgreSQL。首先下载PostgreSQL的GPG密钥:

wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -

然后添加PostgreSQL存储库:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'

最后,使用以下命令更新APT包索引并安装PostgreSQL:

sudo apt update

sudo apt install postgresql postgresql-contrib

安装后,PostgreSQL会默认启动其服务,检查服务的状态:

$ systemctl status postgresql

postgresql.service - PostgreSQL RDBMS

Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)

Active: active

如果服务没有运行,请使用以下命令启动它:

sudo systemctl start postgresql

启用PostgreSQL在启动时启动:

sudo systemctl enable postgresql

步骤3、为SonarQube创建PostgreSQL数据库

现在让我们为SonarQube配置数据库。请先设置PostgreSQL用户的密码:

sudo passwd postgres

设置您的首选密码并切换到如下用户:

su - postgres

为SonarQube创建一个新用户:

createuser sonar

现在切换到PostgreSQL shell:

psql

为上面创建的用户创建密码:

ALTER USER sonar WITH ENCRYPTED PASSWORD 'Passw0rd';

创建数据库并为用户分配权限:

CREATE DATABASE sonarqube OWNER sonar;

GRANT ALL PRIVILEGES ON DATABASE sonarqube to sonar;

\q

步骤4、下载并配置SonarQube

现在我们已经为SonarQube配置了一个数据库,我们将下载SonarQobe二进制文件。从SonarQube官方下载页面下载SonarQobe,地址在https://www.sonarsource.com/,也可以下载目标的版本,比如下载9.1版本,即下载sonarqube-9.1.0.47736.zip文件。

提取下载的SonarQube文件:

unzip sonarqube-*.zip

将提取的文件移动到/opt/目录:

sudo mv sonarqube-*/ /opt/sonarqube

1、为SonarQube创建系统用户帐户

由于SonarQube不应以root用户身份运行,因此我们需要创建一个非管理员帐户来运行SonarQobe:

sudo useradd -M -d /opt/sonarqube/ -r -s /bin/bash sonarqube

将目录/opt/sonarqube的所有权更改为创建的用户:

sudo chown -R sonarqube: /opt/sonarqube

2、配置SonarQube

现在我们已经成功下载并安装了SonarQube,我们需要对其进行配置。根据创建的PostgreSQL数据库设置数据库连接:

sudo vim /opt/sonarqube/conf/sonar.properties

在文件中,编辑以下行:

# DATABASE

.......

# User credentials.

..........

sonar.jdbc.username

sonar.jdbc.username=sonar

sonar.jdbc.password=Passw0rd

........

#----- PostgreSQL 9.6 or greater

# By default the schema named "public" is used. It can be overridden with the parameter "currentSchema".

#sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube?currentSchema=my_schema

sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube

.....

# WEB SERVER

..............

sonar.web.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError

....

sonar.web.host=192.168.200.11

....

sonar.web.port=9000

.....

# ELASTICSEARCH

.....

sonar.search.javaOpts=-Xmx512m -Xms512m -XX:MaxDirectMemorySize=256m -XX:+HeapDumpOnOutOfMemoryError

保存并关闭文件。

步骤5、创建SonarQube系统服务文件

目前,我们还没有办法管理SonarQube服务。因此,我们需要创建一个systemd服务文件,使我们能够启动、停止和检查SonarQube的状态:

sudo vim  /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 daemon-reload

sudo systemctl start sonarqube

启用SonarQube服务以在启动时运行:

sudo systemctl enable sonarqube

检查SonarQube服务的状态:

$ systemctl status sonarqube

允许端口9000通过防火墙:

1]、使用UFW

sudo ufw allow 9000

2]、使用Firewalld

sudo firewall-cmd --permanent --add-port=9000/tcp && sudo firewall-cmd --reload

检查服务是否正在侦听端口9000:

$ sudo ss -plunt|grep 9000

tcp   LISTEN 0      25              [::ffff:192.168.100.124]:9000             *:*    users:(("java",pid=10358,fd=14))

步骤6、访问SonarQube Web控制中心界面

SonarQube Web界面可以使用URL访问,地址格式为http://server-ip:9000,在此登录页面上,使用用户名admin和密码admin登陆:

\

成功登录后,您将被要求更改默认密码:

\

然后您将获得此SonarQube页面:

\

此页面由SonarQube集成的平台组成,即GitHub、GitLab。您可以从列出的平台创建代码。或者,您可以手动创建代码。如果您想在代码中看到问题,请导航到issues选项卡:

\

在上面的页面上,您可以看到代码中的所有漏洞和错误等。您还可以通过导航到rules选项卡来查看所需编程语言中管理代码的规则:

\

至此,说明您已经在Debian 11 Linux系统上成功安装并配置了SonarQube。有了这个控制中心界面,您可以便捷地使用SonarQube。