SonarQube 在 Ubuntu 20.04 LTS 上的安装教程
简介
SonarQube 是一个开源的基于 Web 的代码质量分析工具。SonarQube 可以通过插件分析多种编程语言的代码。本教程将手把手教你如何在 Ubuntu 20.04 LTS 上安装 SonarQube。
准备工作
服务器准备
必要前提:
- 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。
我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。
注册链接: https://www.rainyun.com/NTE2NDM3_
创建雨云服务器
以下步骤仅供参考,请根据实际需求选择配置。
- 点击 云产品 → 云服务器 → 立即购买。
- 选择距离你较近的区域,以保证低延迟。
- 按照自己需求选择配置,选择 Ubuntu 22.04 版本,按照自己需求是否预装 Docker。
- 最后按照提示进行购买。
- 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。
- 我们使用
PowerShell
进行SSH
远程连接到服务器,Win+R
打开运行窗口,输入powershell
后点击确定。
- 到此为止,我们的云服务器就远程连接上了。
安装和配置步骤
第一步:安装 OpenJDK 11
- SSH 到你的 Ubuntu 服务器作为一个非 root 用户且拥有 sudo 权限。
$ sudo apt-get install openjdk-11-jdk -y
第二步:安装和配置 PostgreSQL
- 添加 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'
- 添加 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
- 切换到 postgres 用户。
$ su - postgres
- 创建一个名为 sonar 的用户。
$ createuser sonar
- 登录 PostgreSQL。
$ psql
- 为 sonar 用户设置密码。请使用强密码替换
my_strong_password
。
ALTER USER sonar WITH ENCRYPTED password 'my_strong_password';
- 创建一个 sonarqube 数据库并将所有者设置为 sonar。
CREATE DATABASE sonarqube OWNER sonar;
- 授予 sonar 用户对 sonarqube 数据库的所有权限。
GRANT ALL PRIVILEGES ON DATABASE sonarqube to sonar;
- 退出 PostgreSQL。
\q
- 返回到你的非 root sudo 用户账户。
$ exit
第三步:下载和安装 SonarQube
- 安装 zip 工具,这是解压 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
第四步:添加 SonarQube 组和用户
创建一个专用于 SonarQube 的用户和组,不能以 root 用户运行。
- 创建一个 sonar 组。
$ sudo groupadd sonar
- 创建一个 sonar 用户并将 /opt/sonarqube 设置为家目录。
$ sudo useradd -d /opt/sonarqube -g sonar sonar
- 授予 sonar 用户对
/opt/sonarqube
目录的访问权限。
$ sudo chown sonar:sonar /opt/sonarqube -R
第五步:配置 SonarQube
- 编辑 SonarQube 配置文件。
$ sudo nano /opt/sonarqube/conf/sonar.properties
找到以下行:
#sonar.jdbc.username=
#sonar.jdbc.password=
取消注释这些行,并添加你在第二步中创建的数据库用户和密码。
sonar.jdbc.username=sonar
sonar.jdbc.password=my_strong_password
在这两行下面,添加 sonar.jdbc.url。
sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube
-
保存并退出文件。
-
编辑 sonar 脚本文件。
$ sudo nano /opt/sonarqube/bin/linux-x86-64/sonar.sh
大约在 50 行处,找到这行:
#RUN_AS_USER=
取消注释这行并更改为:
RUN_AS_USER=sonar
- 保存并退出文件。
第六步:设置 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
第七步:修改内核系统限制
SonarQube 使用 Elasticsearch 来存储其索引在 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
第八步:访问 SonarQube Web 界面
在 Web 浏览器中访问你的服务器 IP 地址上的 9000 端口。例如:
http://192.0.2.123:9000
使用用户名 admin
和密码 admin
登录。SonarQube 会提示你更改密码。
结尾
以上就是在 Ubuntu 20.04 LTS 上安装 SonarQube 的全部步骤。希望这篇文章能帮助你成功部署 SonarQube。更多信息,请查看 SonarQube 文档。
雨云 - 新一代云服务提供商: https://www.rainyun.com/NTE2NDM3_