在Ubuntu 18.04上搭建SonarQube服务
在Ubuntu 18.04上搭建SonarQube服务
安装MySQL
在Ubuntu 18.04上,默认情况下,只有最新版本的MySQL包含在APT软件包存储库中,你可以直接更新服务器上的软件包索引并使用apt安装默认软件包。
sudo apt update
sudo apt install mysql-server
这样安装MySQL不会提示您设置密码或进行任何其他配置更改,使用你需要更改root用户的密码。先查看mysql安装的路径,再查看默认密码。
cd /etc/mysql
whereis mysql
sudo cat debian.cnf
然后你可以直接使用默认的账号密码登录mysql,例如下面命令中的账号密码来源于上面获取的默认账户。
mysql -u debian-sys-maint -p
[Enter password] cXzi3iw12iQgVFw0
然后通过下面的sql命令更改root默认用户名和密码。
use mysql;
update mysql.user set authentication_string=password('root') where user='root' and Host ='localhost';
update user set plugin="mysql_native_password";
flush privileges;
quit;
如果你顺利的执行了上面的所有操作,你可以重新启动mysql,验证一下是否成功修改root用户名和密码。
sudo service mysql restart
mysql -u root -p
[Enter password]root
不管你如何安装它,MySQL应该已经开始自动运行,要测试它,你可以检查其运行状态。
systemctl status mysql.service
如果mysql没有运行,你可以用sudo systemctl start mysql
启动它。
创建sonar数据库
将mysql的安全性降低最低,以方便你创建最简单的密码,反正这只是教程,不用管安全。
mysql -u root -p
[Enter password]root
set global validate_password_policy=0;
set global validate_password_length=1;
登陆mysql创建sonar数据库和用户,用户是sonar,密码是sonar。
mysql -u root -p
[Enter password]root
CREATE DATABASE sonar DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
FLUSH PRIVILEGES;
安装JRE/JDK
默认情况下,Ubuntu 18.04包含Open JDK,它是JRE和JDK的开源版本。所以你应该先更新软件包索引,再检查Java是否已经安装。
sudo apt update
java -version
上面的输出表示Java当前未安装,你可以执行下面命令来安装OpenJDK,并验证安装。
sudo apt install default-jre
java -version
该命令将安装Java运行时环境(JRE),这将允许你运行几乎所有的Java软件。
除了JRE之外,你可能还需要Java开发工具包(JDK)才能编译和运行一些特定的基于Java的软件,你可以检查JDK是否已经安装。
sudo apt update
javac -version
上面的输出说明当前系统没有安装JDK,你需要执行以下命令安装JDK,并验证安装。该命令也将安装JRE。
sudo apt install default-jdk
javac -version
通过java -version
和javac -version
可以检查Java的版本,可以用来验证是否安装了JRE/JDK。
安装SonarQube
首先你需要到 SonarQube官网下载地址 下载最新的SonarQube版本,并解压缩到任意目录下。同时将SONAR_RUNNER_HOME变量加入PATH,配置SonarQube的环境变量。
# 使用vim编辑
sudo vim /etc/profile
# 添加内容
SONAR_HOME="/home/parallels/sonarqube-7.3/"
# 重启环境变量
. /etc/profile
你需要为SonarQube配置数据库配置,修改和增加./conf/sonar.properties文件的内容。(其实大部分都是取消注释就可以了)
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.web.host=0.0.0.0
sonar.web.context=/sonar
sonar.web.port=9000
使用下面的命令启动SonarQube,并检查SonarQube的启动状态。
cd sonarqube-7.3/bin
cd linux-x86-64
./sonar.sh start
./sonar.sh status
当你启动失败时,就像上面的输出启动成功,状态却是没有在运行,你可以观察启动日志,来定位错误信息。
tail -200f ../../logs/sonar.log
当然最好的方法是在执行启动命令前,同时观察启动日志,这是可以最直观的看到是否启动成功。
1号坑
提升没有权限,你只要添加sudo执行启动命令就可以了。
sudo ./sonar.sh start
2号坑
提示部分功能在Java 9版本中就放弃支持,你需要下载Java 8,并把系统默认版本切换到Java 8版本。
sudo apt install openjdk-8-jdk
sudo update-alternatives --config java
java -version
3号坑
当启动时没有错误信息,但是SonarQube一启动又马上关闭,所以你需要使用下面命令观察运行日志。
tail -200f ../../logs/es.log
由于SonarQube 6.6以后版本加入了elasticsearch,你会遇到不能以root用户启动elasticsearch的问题。这里你可以用最简单粗暴的方法解决,直接为当前用户赋予sonarqube-7.3目录的权限。
sudo chown -R parallels:parallels sonarqube-7.3
这样操作以后,操作SonarQube时就不再需要添加sudo来执行命令了,也是挺好。
初识SonarQube
当你完成SonarQube的安装过程,你可以通过 http://127.0.0.1:9000/sonar 访问SonarQube主页。
SonarQube的默认管理账户是admin/admin,你登录以后会进入项目管理主页,但还是有点懵?不知道具体含义?没关系,你可以安装汉化包。
在页面上找到 Administration > Marketplace ,在搜索框中输入 chinese ,会搜索出一个 Chinese Pack ,点右侧的 install 按钮开始安装。
安装成功后,会提示重启SonarQube服务器,稍等一会,再看页面上已经显示成中文,这时候你就可以开始探索SonarQube了。