如何在 Ubuntu 20.04 LTS 上安装 SonarQube

在本教程中,我们将向您展示如何在 Ubuntu 20.04 LTS 上安装 SonarQube。 对于那些不知道的人,SonarQube 是一个基于 Web 的开源工具,用于管理代码质量和代码分析。 SonarQube 包括错误和漏洞检测以及代码跟踪等功能。 SonarQube 可以集成到 GitHub、Azure DevOps、Bitbucket、GitLab 和 Docker。 如果你碰巧有一个本地 Linux 服务器,或者像 AWS、谷歌这样的云帐户 Cloud,或者Azure,好用,可以免费部署社区版SonarQube。

本文假设您至少具备 Linux 的基本知识,知道如何使用 shell,最重要的是,您将站点托管在自己的 VPS 上。 安装非常简单,假设您在 root 帐户中运行,否则您可能需要添加 ‘sudo‘ 到获得 root 权限的命令。 我将向您展示在 Ubuntu 20.04 (Focal Fossa) 上逐步安装 SonarQube。 您可以按照针对 Ubuntu 18.04、16.04 和任何其他基于 Debian 的发行版(如 Linux Mint)的相同说明进行操作。

在 Ubuntu 20.04 LTS Focal Fossa 上安装 SonarQube

步骤 1. 首先,通过运行以下命令确保所有系统包都是最新的 apt 终端中的命令。

sudo apt update sudo apt upgrade

步骤 2. 配置内核。

现在修改内核系统限制。 为此,我们必须设置以下内容:

  • vm.max_map_count 必须大于或等于 524288
  • fs.file-max 必须大于或等于 131072
  • SonarQube 用户必须能够打开至少 131072 个文件描述符
  • SonarQube 用户必须能够打开至少 8192 个线程
sudo nano /etc/sysctl.conf

将以下行添加到该文件的底部:

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

接下来,使用以下命令打开limits.conf文件:

sudo nano /etc/security/limits.conf

在此文件的末尾,添加以下内容:

sonarqube   -   nofile   65536 sonarqube   -   nproc    4096

然后,重新启动系统以使更改生效。:

reboot

步骤 3. 安装 Java。

运行以下命令安装 OpenJDK 和 JRE 11:

sudo apt install openjdk-11-jdk sudo apt install openjdk-11-jre

步骤 4. 安装 PostgreSQL。

SonarQube 仅适用于 PostgreSQL。 现在我们运行下面的命令来安装它:

sudo apt install postgresql postgresql-contrib

完成后,使用以下命令启动并启用数据库服务:

sudo systemctl enable postgresql sudo systemctl start postgresql

现在我们必须使用以下命令为 PostgreSQL 用户设置密码:

sudo passwd postgres

以 PostgreSQL 超级用户身份登录并创建 SonarQube PostgreSQL 数据库和数据库用户:

sudo -Hiu postgres createuser sonaradmin createdb -O sonaradmin sonarqubedb psql ALTER USER sonaradmin WITH ENCRYPTED password 'changeme'; q exit

步骤 5. 在 Ubuntu 20.04 上安装 SonarQube。

现在从官方网站下载最新版本的 SonarQube 安装程序:

wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.9.1.44547.zip sudo unzip sonarqube-8.9.1.44547.zip -d /opt

将提取的设置移至 /opt/sonarqube 目录:

sudo mv /opt/sonarqube-8.9.1.44547 /opt/sonarqube

步骤 5. 配置 SonarQube。

现在我们创建一个组作为声纳:

sudo groupadd sonar sudo useradd -c "user to run SonarQube" -d /opt/sonarqube -g sonar sonar  sudo chown sonar:sonar /opt/sonarqube -R

接下来,使用您喜欢的文本编辑器打开 SonarQube 配置文件:

nano /opt/sonarqube/conf/sonar.properties

找到以下几行:

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

取消注释并键入我们在上述步骤中创建的 PostgreSQL 数据库用户名和密码,并添加 postgres 连接字符串:

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

接下来,编辑声纳脚本文件并设置 RUN_AS_USER:

RUN_AS_USER=sonar

现在启动 SonarQube:

sudo su sonar cd /opt/sonarqube/bin/linux-x86-64/

接下来,运行脚本以启动 SonarQube:

./sonar.sh start

要检查 SonarQube 是否正在运行,请输入以下命令:

./sonar.sh status

步骤 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

Save 和 close 文件,您现在可以使用以下两个命令启动和启用 SonarQube 服务:

sudo systemctl start sonarqube sudo systemctl enable sonarqube

步骤 7. 访问 SonarQube Web 界面。

成功安装后,使用浏览器类型的服务器 IP 和端口 9000 访问 SonarQube:

https://your-server-ip-address:9000

您最终应该会看到一个登录屏幕,您将在其中使用以下默认凭据 admin/admin. 身份验证成功后,您将需要更改默认密码。 处理完这些后,您会发现自己位于 SonarQube 主页:

恭喜! 您已成功安装 SonarQube。 感谢您使用本教程在 Ubuntu 20.04 LTS Focal Fossa 系统上安装 SonarQube。 如需更多帮助或有用信息,我们建议您查看 SonarQube 官方网站.