如何在Ubuntu 16.04上安装SonarQube

SonarQube是一个免费的开源质量管理系统平台,可用于自动执行代码检查。它可以分析源代码文件,...

SonarQube是一个免费的开源质量管理系统平台,可用于自动执行代码检查。 它可以分析源代码文件,计算一组指标,并在基于Web的仪表板上显示结果。 它是用Java语言编写的,并且还支持其他语言,如Perl,PHP和Ruby。 默认情况下,SonarQube支持h2数据库,但它不可扩展。 因此,您可以将SonarQube与其他数据库服务器集成,如MSSQL,PostgreSQL,Oracle和MySQL。 SOnarQube配有大量的插件,可以从存储库中自动整合源代码。 它允许开发人员以20多种不同的语言检测错误和漏洞以及减少代码气味。 您可以通过SonarLint插件轻松地将SolarQube与Eclipse,Visual Studio和IntelliJ IDEA开发环境集成。

在本教程中,我们将学习如何在Ubuntu 16.04服务器上安装SonarQube。

先决条件

  • 一个新的Ubuntu 16.04服务器安装在您的系统上。
  • 最低4 GB的RAM。
  • 具有sudo权限的非root用户。

入门

在开始之前,建议使用最新版本更新您的基本系统。 您可以通过运行以下命令来执行此操作:

sudo apt-get update -y
sudo apt-get upgrade -y

更新系统后,您可以继续安装Java。

1安装Java

Sonarqube是一个基于Java的应用程序,所以您将需要首先安装Java 8。 默认情况下,Java 8在Ubuntu存储库中不可用。 您可以通过将webupd8team PPA存储库添加到系统来安装Java 8。

首先,通过运行以下命令添加PPA:

sudo add-apt-repository ppa:webupd8team/java

接下来,使用以下命令更新存储库:

sudo apt-get update -y

一旦存储库是最新的,您可以通过运行以下命令来安装Java 8:

sudo apt-get install oracle-java8-installer -y

安装Java后,可以使用以下命令检查Java版本:

java -version

您应该看到以下输出:

Java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

一旦你完成,你可以继续下一步。

2安装Apache和MariaDB

您还需要安装Apache和MariaDB,因为我们将使用Apache作为反向代理和MariaDB作为数据库。 您可以通过运行以下命令来安装它们:

sudo apt-get install apache2 mariadb-server -y

安装完成后,启动Apache和MariaDB服务,并使用以下命令启动它们。

sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl start mysql
sudo systemctl enable mysql

一旦Apache和MariaDB安装并工作,您可以继续下一步。

3配置MariaDB

默认情况下,MariaDB安装不受保护,因此您需要安装MariaDB安装。 您可以通过运行mysql_secure_installation脚本来执行此操作:

sudo mysql_secure_installation

在此过程中,将要求您设置root密码,删除匿名用户,远程禁用root登录并删除测试数据库。 回答以下所有问题:

Enter current password for root (enter for none):
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

一旦MariaDB安全,请使用以下命令登录到MariaDB shell:

mysql -u root -p

在提示时输入root密码,然后为SonarQube创建一个数据库:

MariaDB [(none)]> CREATE DATABASE sonardb;

接下来,创建一个新的数据库用户,并通过您创建的数据库为数据库用户提供适当的权限。

MariaDB [(none)]> GRANT ALL PRIVILEGES ON sonardb.* TO 'sonar'@'localhost' IDENTIFIED BY 'yourpassword';

接下来,使用以下命令将更改应用于数据库权限:

MariaDB [(none)]> FLUSH PRIVILEGES;

最后,使用以下命令退出MariaDB shell:

MariaDB [(none)]> \q

一旦数据库被配置,你可以继续下一步。

4安装SonarQube

您可以从他们的官方网站下载SonarQube的最新版本。 您可以使用wget命令下载它:

wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.4.zip

下载完成后,使用以下命令解压缩下载的存档:

sudo unzip sonarqube-6.4.zip -d /opt

接下来,使用以下命令重命名目录:

sudo mv /opt/sonarqube-6.4 /opt/sonar

接下来,您将需要修改SonarQube主配置文件sonar.properties:

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

进行以下更改:

##Database User credentials:
sonar.jdbc.username=sonar
sonar.jdbc.password=yourpassword
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

保存并关闭文件,然后为SonarQube创建一个systemd服务文件。

sudo nano /etc/systemd/system/sonar.service

添加以下行:

[Unit]
Description=SonarQube service
After=syslog.target network.target

[Service]
Type=forking

ExecStart=/opt/sonar/bin/linux-x86-64/sonar.sh start
ExecStop=/opt/sonar/bin/linux-x86-64/sonar.sh stop

User=root
Group=root
Restart=always

[Install]
WantedBy=multi-user.target

完成后保存文件,然后启动SonarQube服务,并使用以下命令启动文件启动:

sudo systemctl start sonar
sudo systemctl enable sonar

SonarQube进程需要一些时间才能完成创建数据库和填充数据。 您可以使用以下命令检查SonarQube的状态:

sudo systemctl status sonar

您还可以通过查看/opt/sonar/logs/sonar.log文件的内容来监视进程。 完成后,可以继续下一步。

5将Apache配置为反向代理

默认情况下,SonarQube监听端口9000.这里,我们将使用apache作为反向代理,以便可以使用端口80访问SonarQube:

首先,使用以下命令启用apache代理模块:

sudo a2enmod proxy
sudo a2enmod proxy_http

接下来,使用以下命令为SonarQube创建一个新的虚拟主机文件:

sudo nano /etc/apache2/sites-available/sonar.conf

添加以下行:

<VirtualHost *:80>
    ServerName 192.168.15.189
    ServerAdmin admin@example.com
    ProxyPreserveHost On
    ProxyPass / http://localhost:9000/
    ProxyPassReverse / http://localhost:9000/
    TransferLog /var/log/apache2/sonar_access.log
    ErrorLog /var/log/apache2/sonar_error.log
</VirtualHost>

保存并关闭文件,然后运行以下命令启用新的虚拟主机:

sudo a2ensite sonar

最后,使用以下命令重新启动apache服务:

sudo systemctl restart apache2

6访问SonarQube Web界面

所有必需的组件都已安装和配置。 现在是时候访问SonarQube Web界面了。

在访问之前,您需要通过UFW防火墙允许端口80。 默认情况下,UFW在Ubuntu中被禁用,所以您需要先启用它。 您可以通过运行以下命令来启用它:

sudo ufw enable

一旦UFW防火墙启用,您可以通过运行以下命令,通过UFW允许端口80:

sudo ufw allow 80/tcp

您现在可以通过运行以下命令来检查UFW防火墙的状态:

sudo ufw status

现在,打开你的网页浏览器并导航到URL http://192.168.15.189 ,你应该看到以下屏幕:

SonarQube仪表板

现在点击“登录”按钮,你应该看到以下屏幕:

登录

使用默认用户名登录为“admin”,密码为“admin”,您应该看到以下屏幕:

SnarQube

登录SonarQube仪表板后,单击管理>系统>系统信息按钮。 您应该在以下屏幕中看到当前的系统信息:

系统信息

接下来,单击管理>系统>更新中心按钮,您应该在以下屏幕中看到所有已安装的插件:

更新中心

在这里,您可以更新现有的插件,还可以安装可用的插件。 安装或更新所需的插件后,您将需要单击“重新启动”按钮重新启动系统以更新更改。

结论

在上面的教程中,我们学会了在Ubuntu 16.04上安装SonarQube以及SonarQube的基本用法。 现在,您可以轻松地在生产环境中部署它。 如果您需要任何帮助,欢迎给我发表评论。