在 Ubuntu 20.04 LTS 上安装 SonarQube

介绍

SonarQube 是一种基于 Web 的开源代码质量分析工具。 SonarQube 可以通过插件分析各种不同编程语言的代码。 本指南解释了怎样在 Ubuntu 20.04 LTS 上安装 SonarQube。

先决条件

Vultr 部署一个完全更新的 Ubuntu 20.04 LTS 服务器,至少有 2GB 的 RAM 和 1 个 vCPU 内核。 创建具有 sudo 访问权限的非 root 用户。

1. 安装 OpenJDK 11

以具有 sudo 访问权限的非 root 用户身份通过​​ SSH 连接到您的 Ubuntu 服务器。

安装 OpenJDK 11。

$ sudo apt-get install openjdk-11-jdk -y

2. 安装和配置 PostgreSQL

添加 PostgreSQL 存储库。

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

添加 PostgreSQL 签名密钥。

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

安装 PostgreSQL。

$ sudo apt install postgresql postgresql-contrib -y

使数据库服务器在重新启动时自动启动。

$ sudo systemctl enable postgresql

启动数据库服务器。

$ sudo systemctl start postgresql

更改默认的 PostgreSQL 密码。

$ sudo passwd postgres

切换到 邮局 用户。

$ su - postgres

创建一个名为的用户 声纳.

$ createuser sonar

登录到 PostgreSQL。

$ psql

设置密码 声纳 用户。 使用强密码代替 my_strong_password.

ALTER USER sonar WITH ENCRYPTED password 'my_strong_password';

创建一个 声纳管 数据库并将所有者设置为 声纳.

CREATE DATABASE sonarqube OWNER sonar;

授予所有权限 声纳管 数据库到 声纳 用户。

GRANT ALL PRIVILEGES ON DATABASE sonarqube to sonar;

退出 PostgreSQL。

q

返回到您的非 root sudo 用户帐户。

$ exit

3. 下载并安装 SonarQube

安装 压缩 实用程序,这是解压缩 SonarQube 文件所必需的。

$ sudo apt-get install zip -y

找到最新的下载地址 SonarQube 官方下载页面.

下载 SonarQube 分发文件。

$ sudo wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-<VERSION_NUMBER>.zip

解压下载的文件。

sudo unzip sonarqube-<VERSION_NUMBER>.zip

将解压后的文件移动到 /opt/sonarqube 目录

sudo mv sonarqube-<VERSION_NUMBER> /opt/sonarqube

4. 添加 SonarQube 组和用户

为 SonarQube 创建一个专用用户和组,它不能作为 用户。

创建一个 声纳 团体。

$ sudo groupadd sonar

创建一个 声纳 用户和设置 /选择/声纳 作为主目录。

$ sudo useradd -d /opt/sonarqube -g sonar sonar

授予 声纳 用户访问 /opt/sonarqube 目录。

$ sudo chown sonar:sonar /opt/sonarqube -R

5.配置SonarQube

编辑 SonarQube 配置文件。

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

找到以下几行:

#sonar.jdbc.username=
#sonar.jdbc.password=

取消注释这些行,并添加您在第 2 步中创建的数据库用户和密码。

sonar.jdbc.username=sonar
sonar.jdbc.password=my_strong_password

在这两行下面,添加 sonar.jdbc.url.

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

保存并退出文件。

编辑声纳脚本文件。

$ sudo nano /opt/sonarqube/bin/linux-x86-64/sonar.sh

大约向下 50 行,找到这一行:

#RUN_AS_USER=

取消注释该行并将其更改为:

RUN_AS_USER=sonar

保存并退出文件。

6. 设置 Systemd 服务

创建一个 systemd 服务文件以在系统启动时启动 SonarQube。

$ sudo nano /etc/systemd/system/sonar.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=sonar
Group=sonar
Restart=always

LimitNOFILE=65536
LimitNPROC=4096

[Install]
WantedBy=multi-user.target

保存并退出文件。

启用 SonarQube 服务以在系统启动时运行。

$ sudo systemctl enable sonar

启动 SonarQube 服务。

$ sudo systemctl start sonar

检查服务状态。

$ sudo systemctl status sonar

7. 修改内核系统限制

SonarQube 使用 弹性搜索 将其索引存储在 MMap FS 目录中。 它需要对系统默认值进行一些更改。

编辑 sysctl 配置文件。

$ sudo nano /etc/sysctl.conf

添加以下几行。

vm.max_map_count=262144
fs.file-max=65536
ulimit -n 65536
ulimit -u 4096

保存并退出文件。

重新启动系统以应用更改。

$ sudo reboot

8. 访问 SonarQube 网页界面

在 Web 浏览器中使用服务器 IP 地址在端口 9000 上访问 SonarQube。例如:

https://192.0.2.123:9000

使用用户名登录 admin 和密码 admin. SonarQube 将提示您更改密码。

更多信息

SonarQube 文档 想要查询更多的信息。

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com

相关阅读:

Posted in: LinuxTags: