在Ubuntu 16.04上,如何安装SonarQube

・8 分钟阅读

使用不同的系统?

SonarQube是一个用于质量系统开发的开源工具,它是用Java编写的,支持多种数据库,它提供持续检查代码,显示应用程序健康状况和突出显示新引入的问题的功能,它包含了用于检测棘手问题的代码分析器,它还可以与DevOps轻松集成。

在本教程中,我们会在Ubuntu 16.04上安装最新版本的SonarQube 。

前提条件

  • 有至少2GB RAM的64位Ubuntu 16.04服务器实例,
  • 一个sudo用户

步骤1:执行系统更新

在Ubuntu服务器实例上安装任何软件包之前,建议更新系统,使用sudo用户登录,并运行以下命令来更新系统。


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

步骤2安装JDK

在服务器上添加Oracle Java存储库,通过运行:


sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

通过键入以下命令安装Oracle JDK :


sudo apt install oracle-java8-installer

你现在可以通过键入以下命令来检查Java版本:

 
java -version

 

步骤3安装和配置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'
wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -

运行以下命令安装PostgreSQL数据库服务器:


sudo apt-get -y install postgresql postgresql-contrib

启动PostgreSQL服务器,并且使它能够在引导时通过运行以下命令自动启动:


sudo systemctl start postgresql
sudo systemctl enable postgresql

更改默认PostgreSQL用户的密码。

 
sudo passwd postgres

 

切换到postgres用户。

 
su -postgres

 

键入以下命令创建一个新用户:

 
createuser sonar

 

切换到PostgreSQL shell 。

 
psql

 

为新创建的用户设置SonarQube数据库的密码。


ALTER USER sonar WITH ENCRYPTED password 'StrongPassword';

运行以下命令为PostgreSQL数据库创建一个新数据库:


CREATE DATABASE sonar OWNER sonar;

psql shell退出:

 
q

 

通过运行exit命令切换回sudo用户。

步骤4下载并配置Sonarkube

下载SonarQube安装程序文件存档。


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

你总是可以在SonarQube上查找到最新版本的应用程序的链接下载页面

通过运行以下命令安装解压缩:


apt-get -y install unzip

使用以下命令解压存档文件。


sudo unzip sonarqube-6.4.zip -d /opt

重命名目录:


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

使用你喜欢的文本编辑器打开SonarQube配置文件。


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

查找下列行。


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

取消注释,并且提供我们先前创建的数据库的PostgreSQL用户名和密码,它看起来应该是:


sonar.jdbc.username=sonar
sonar.jdbc.password=StrongPassword

下一步,查找:


#sonar.jdbc.url=jdbc:postgresql://localhost/sonar

取消注释该行,保存文件,并且退出编辑器。

步骤5:配置SystemD服务

可以使用安装程序包中提供的启动脚本直接启动SonarQube ,为了方便起见你应该为sonarcube设置一个Systemd单元文件。


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=root
Group=root
Restart=always

[Install]
WantedBy=multi-user.target

运行以下命令启动应用程序:


sudo systemctl start sonar

启用SonarQube服务在引导时自动启动。


sudo systemctl enable sonar

要检查服务是否正在运行,请运行:


sudo systemctl status sonar

步骤5:配置反向代理

默认情况下SonarQube在端口9000上侦听localhost,在本教程中,我们会使用Apache作为反向代理,以便通过标准HTTP端口访问应用程序,运行以下命令安装Apache网络服务器:


sudo apt-get -y install apache2

启用mod_proxy


sudo a2enmod proxy
sudo a2enmod proxy_http

创建新虚拟主机。


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

用以下方法填充文件:


<VirtualHost *:80> 
 ServerName sonar.yourdomain.com
 ServerAdmin me@yourdomain.com
 ProxyPreserveHost On
 ProxyPass / http://localhost:9000/
 ProxyPassReverse / http://localhost:9000/
 TransferLog /var/log/apache2/sonar.yourdomain.com_access.log
 ErrorLog /var/log/apache2/sonar.yourdomain.com_error.log
</VirtualHost>

启用虚拟主机。


sudo a2ensite sonar.yourdomain.com.conf

启动Apache并使其在引导时自动启动:


sudo systemctl start apache2
sudo systemctl enable apache2

如果你的服务器已经运行,请使用以下命令重新启动它:


sudo systemctl restart apache2

步骤6: 完成安装

启动SonarQube服务:


sudo systemctl start sonar

SonarQube已安装在服务器上,请访问以下地址的仪表板。


http://sonar.yourdomain.com

使用初始管理员帐户adminadmin登录,你现在可以使用SonarQube持续分析你编写的代码了。

Zuoxiaojuan profile image