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 ,你应该看到以下屏幕:
现在点击“登录”按钮,你应该看到以下屏幕:
使用默认用户名登录为“admin”,密码为“admin”,您应该看到以下屏幕:
登录SonarQube仪表板后,单击管理>系统>系统信息按钮。 您应该在以下屏幕中看到当前的系统信息:
接下来,单击管理>系统>更新中心按钮,您应该在以下屏幕中看到所有已安装的插件:
在这里,您可以更新现有的插件,还可以安装可用的插件。 安装或更新所需的插件后,您将需要单击“重新启动”按钮重新启动系统以更新更改。
结论
在上面的教程中,我们学会了在Ubuntu 16.04上安装SonarQube以及SonarQube的基本用法。 现在,您可以轻松地在生产环境中部署它。 如果您需要任何帮助,欢迎给我发表评论。