SonarQube 或以前的 Sonar 是一个用于静态代码分析和代码安全的开源平台。它可以发现超过 20 种编程语言的安全漏洞,并自动分析代码质量以检测代码错误和异味。SonarQube 还提供重复代码、编码标准、代码复杂度和安全建议等报告。
在 Ubuntu 22.04 LTS Jammy Jellyfish 上安装 SonarQube
apt
步骤 1. 首先,通过在终端中运行以下命令,确保所有系统包都是最新的。
sudo apt update sudo apt upgrade sudo apt install wget apt-transport-https gnupg2 software-properties-common
步骤 2. 安装 Java OpenJDK。
现在运行以下命令将Java 11 安装到您的 Ubuntu 系统:
sudo apt install openjdk-11-jdk
安装完成后,您可以通过检查 Java 版本来验证它:
java -version
步骤 3. 安装 PostgreSQL 数据库。
默认情况下,PostgreSQL 在 Ubuntu 22.04 基础存储库中可用。现在运行以下命令将最新版本的PostgreSQL安装到您的系统中:
sudo apt install postgresql postgresql-contrib
成功安装后,启用 PostgreSQL(在系统启动时自动启动)、启动并使用以下命令验证状态:
sudo systemctl enable postgresql
sudo systemctl start postgresql
sudo systemctl status postgresql
接下来,通过 PostgreSQL shell 为 SonarQube 创建新的数据库和用户:
sudo -u postgres psql
运行以下 PostgreSQL 查询为 SnonarQube 创建一个新的数据库和用户:
CREATE USER sonarqube WITH PASSWORD 'your-strong-passwd'; CREATE DATABASE sonarqube OWNER sonarqube; GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonarqube;
之后,我们为 SonarQube 创建一个新用户,并设置自定义内核参数:
sudo useradd -b /opt/sonarqube -s /bin/bash sonarqube
接下来,使用您喜欢的文本编辑器打开文件:/etc/sysctl.conf
sudo nano /etc/sysctl.conf
添加以下配置:
vm.max_map_count=524288 fs.file-max=131072
保存并关闭文件,然后运行下面的 sysctl 命令以应用新更改:
sudo sysctl --system
步骤 4. 在 Ubuntu 22.04 上安装 SonarQube。
默认情况下,SonarQube 在 Ubuntu 22.04 基础存储库中不可用。现在运行以下命令,从官方页面下载最新版本的 SonarQube 到您的系统:
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.6.1.59531.zip
接下来,解压下载的文件:
unzip sonarqube-9.6.1.59531.zip mv sonarqube-9.6.1.59531 /opt/sonarqube
我们将需要更改一些文件夹权限:
sudo chown -R sonarqube:sonarqube /opt/sonarqube
步骤 5. 配置 SonarQube。
首先,使用您喜欢的文本编辑器打开 SonarQube 配置文件“ ” :/opt/sonarqube/conf/sonar.properties
nano /opt/sonarqube/conf/sonar.properties
添加以下配置:
sonar.jdbc.username=sonarqube sonar.jdbc.password=Your-Strong-Passwd sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube
取消注释以下配置:
sonar.search.javaOpts=-Xmx512m -Xms512m -XX:MaxDirectMemorySize=256m -XX:+HeapDumpOnOutOfMemoryError sonar.web.host=127.0.0.1 sonar.web.port=9000 sonar.web.javaAdditionalOpts=-server sonar.log.level=INFO sonar.path.logs=logs
步骤 6. 配置 SonarQube Systemd 服务。
现在让我们创建一个systemd
文件,以便可以控制 SonarQube 服务。使用以下命令创建文件:
sudo nano /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
保存并关闭文件,然后使用以下命令重新加载 systemd 管理器:
sudo systemctl daemon-reload sudo systemctl start sonarqube.service sudo systemctl enable sonarqube.service
步骤 7. 配置防火墙。
现在,我们使用 Apache 设置了一个简单防火墙 (UFW),以允许在默认 Web 端口 9000 上进行公共访问:
sudo ufw allow OpenSSH sudo ufw allow 9000/tcp sudo ufw enable
步骤 8. 访问 SonarQube Web 界面。
成功安装后,打开您的 Web 浏览器并使用 URL 访问 SonarQube 安装向导。输入默认用户名和密码 admin/admin,然后单击 Login。您将被重定向到以下页面:http://your-server-ip-address:9000
感谢您使用本教程在 Ubuntu 22.04 LTS Jammy Jellyfish 系统上安装 SonarQube。如需更多帮助或有用信息,我们建议您查看SonarQube 官方网站。