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

CentOS/RHEL/Rocky Linux上安装和配置SonarQube

更新时间:2023-05-21 10:07:50浏览次数:243+次

本指南介绍如何在CentOS/RHEL/Rocky Linux系统上安装和配置SonarQube的方法。

安装先决条件

SonarQube是基于Java构建的,因此我们将确保安装Java 11。

同时,需要安装PostgreSQL。

在CentOS/RHEL/Rocky Linux上安装和配置SonarQube的方法

步骤1:更新并安装所需的工具

在这一步中,请确保您的服务器得到了很好的更新,并安装了安装过程中所需的所有工具。我们还将调整系统设置,如SELinux、max_map_count和fs.file-max。运行下面的命令来更新您的服务器:

sudo yum update -y

sudo yum install vim wget curl -y

1、将SELinux配置为允许

这可以通过运行以下命令来完成:

sudo setenforce 0

sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

2、调整max_map_count和fs.file-max

在Linux内核文档中,此文件包含进程可能具有的最大内存映射区域数。内存映射区域被用作调用malloc的副作用,直接由mmap、mprotect和madvise使用,也可以在加载共享库时使用。

要调整设置以符合SonarQube的要求,请打开“/etc/sysctl.conf”文件并添加设置,如下所示:

sudo tee -a /etc/sysctl.conf<<EOF

vm.max_map_count=262144

fs.file-max=65536

EOF

然后重新加载sysctl配置,如下所示:

sudo sysctl --system

3、创建sonar用户

建议创建一个单独的用户来运行SonarQube。让我们创建一个,如下:

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

步骤2:安装Java 17

正如在上面介绍中所提到的,SonarQube是用Java编写的,它需要安装Java:

sudo yum -y install java-17-openjdk-devel

通过检查版本确认Java安装成功:

$ java -version

openjdk version "17.0.7" 2023-04-18 LTS

OpenJDK Runtime Environment (Red_Hat-17.0.7.0.7-1.el8_7) (build 17.0.7+7-LTS)

OpenJDK 64-Bit Server VM (Red_Hat-17.0.7.0.7-1.el8_7) (build 17.0.7+7-LTS, mixed mode, sharing)

步骤3:安装和配置PostgreSQL的说明

安装可参考在CentOS 7/RHEL 7服务器上安装PostgreSQL 15的方法,阅读地址在https://www.hmxthome.com/linux/4956.html。安装完成后,我们可以成功连接到我们的PostgreSQL数据库,这时,我们可以继续为SonarQube创建用户和数据库。

在这里,我们将为SonarQube创建一个用户。在退出数据库之前,请按如下所示进行操作:

sudo su - postgres

psql

create user sonar;

create database sonar_db owner sonar;

grant all privileges on database sonar_db to sonar;

为创建的sonar用户设置密码:

ALTER USER sonar WITH ENCRYPTED password 'StrongPassword';

\q

exit

步骤4:获取并安装SonarQube

我们将下载SonarQube的长期版本,然后安装在我们的服务器中。按照以下步骤安装我们的SonarQube。

您可以访问SonarQube下载页面,下载地址在https://binaries.sonarsource.com/?prefix=Distribution/sonarqube/,查看他们的各种产品。或者,下载开发人员版:

cd ~/

wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.9.1.69595.zip

然后解压缩文件:

sudo yum -y install unzip

unzip sonarqube-*.zip

之后,将文件夹重命名为sonarqube:

sudo mv sonarqube-*/  /opt/sonarqube

rm sonarqube-*.zip

步骤5:配置SonarQube

一旦文件被提取到/opt/目录,就可以配置应用程序了。

打开“/opt/sonarqube/conf/sonar.properties”文件并添加数据库详细信息,如下所示。除此之外,找到共享的行并取消对它们的注释:

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

##数据库详细信息

sonar.jdbc.username=sonar

sonar.jdbc.password=StrongPassword

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

##如何访问SonarQube Web UI

sonar.web.host=0.0.0.0

sonar.web.port=9000

##Java选项

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

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

##要取消注释以下Elasticsearch存储路径

sonar.path.data=data

sonar.path.temp=temp

将SonarQube文件的所有权授予我们在步骤1中创建的sonar用户:

sudo chown -R sonar:sonar /opt/sonarqube

如果在默认位置找不到Java,则必须指定SonarQube要查找的二进制文件。您可以在“/opt/sonarqube/conf/wrapper.conf”文件中指定java的位置。查找“wrapper.java.command”行,并将您的java位置放在它旁边:

$ sudo vim /opt/sonarqube/conf/wrapper.conf

wrapper.java.command=/usr/lib/jvm/jre-openjdk/bin/java

到这里,再添加SonarQube Systemd服务文件

最后,我们将确保能够通过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

LimitNOFILE=65536

LimitNPROC=4096

User=sonar

Group=sonar

Restart=on-failure

[Install]

WantedBy=multi-user.target

编辑完systemd文件后,我们必须重新加载它们,以便可以读取和加载它们:

sudo systemctl daemon-reload

然后启动并启用服务:

sudo systemctl start sonarqube.service

sudo systemctl enable sonarqube.service

如果已成功启动并正在运行,请检查其状态:

$  systemctl status sonarqube.service

 sonarqube.service - SonarQube service

   Loaded: loaded (/etc/systemd/system/sonarqube.service; enabled; vendor preset: disabled)

   Active: active

步骤6:更改防火墙规则以允许SonarQube访问

此时此刻,sonarqube服务应该正在运行。如果您无法访问web界面,请访问位于“/opt/sonarqube/logs”中的日志文件,您将在其中找到:

elasticsearch日志(es.log)。

声纳日志(sonar.log)。

网络日志(web.log)。

访问日志(access.log)以及其他日志。

当前,我们启用了SonarQube网络在9000端口上监听。为了使一切正常工作,我们应该允许防火墙上的这个端口。通过运行下面共享的命令继续执行此操作:

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

步骤7:访问Web用户界面

我们现在已经准备好访问SonarQube接口,并开始评估我们的代码的安全性。要访问界面,请打开您喜爱的浏览器并将其指向http://server-ip-or-fqdn:9000地址格式。

步骤8:访问SonarQube Web界面以完成SonarQube配置

在SonarQube Web界面要登录,只需点击“登录(Log In)”按钮,就会进入一个类似于下面分享的页面。使用用户名作为“admin”,使用密码“admin”:

\

之后,您将被要求将密码更新为新密码。输入新的管理员密码,然后继续登录:

\

您应该被引导进入主要区域,如下图所示:

\

至此,在CentOS/RHEL/Rocky Linux系统上安装和配置SonarQube顺利完成。