DevOps
开源文化 ThingsBoard 开源中间件 Kubernetes DevOps KubeEdge EdgeX Foundry Node-RED
Documentation > DevOps组件部署 > SonarQube

On this page

SonarQube

一、概述

官网地址

1
2
3
4
# 官网地址

https://www.sonarqube.org/
https://www.sonarqube.org/downloads/

安装环境

软件 服务器 版本 备注
JDK 182.92.210.65 1.8 Jenkins同一机器
MySQL 182.92.210.65 5.7  
SonarQube 182.92.210.65 6.7.4  

安装步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 1.安装MySQL,在MySQL创建sonar数据库


# 2.安装SonarQube

# 下载sonar压缩包:
https://www.sonarqube.org/downloads/
解压sonar,并设置权限
yum install unzip
unzip sonarqube-6.7.4.zip 解压
mkdir /opt/sonar 创建目录
mv sonarqube-6.7.4/* /opt/sonar 移动文件
useradd sonar 创建sonar用户,必须sonar用于启动,否则报错
chown -R sonar. /opt/sonar 更改sonar目录及文件权限


# 修改sonar配置文件
vi /opt/sonarqube-6.7.4/conf/sonar.properties
内容如下:
sonar.jdbc.username=root sonar.jdbc.password=Root@123
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?
useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=
maxPerformance&useSSL=false
注意:sonar默认监听9000端口,如果9000端口被占用,需要更改。


# 启动sonar
cd /opt/sonarqube-6.7.4
su sonar ./bin/linux-x86-64/sonar.sh start 启动
su sonar ./bin/linux-x86-64/sonar.sh status 查看状态
su sonar ./bin/linux-x86-64/sonar.sh stop 停止
tail -f logs/sonar.logs 查看日志


# 访问sonar
http://192.168.66.101:9000

二、安装部署

1.安装部署SonarQube

1.1.安装MySQL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#创建目录
mkdir -p /devops/mysql/conf
mkdir -p /devops/mysql/data
chmod 777 * -R /devops/mysql/conf
chmod 777 * -R /devops/mysql/data
 
#创建配置文件
vim /devops/mysql/conf/my.cnf
 
#输入一下内容
[mysqld]
log-bin=mysql-bin #开启二进制日志
server-id=119 #服务id,取本机IP最后三位
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
 
 
#启动容器
docker run -d --restart=always \
-p 3306:3306 \
-v /devops/mysql/data:/var/lib/mysql \
-v /devops/mysql/conf:/etc/mysql/ \
-e MYSQL_ROOT_PASSWORD=root \
--name mysql \
percona:5.6
 
 
#进入mysql容器内部
docker exec -it mysql bash  
#登陆mysql
mysql -u root -p
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
[root@aliyun-8g ~]# docker exec -it mysql bash 
bash-4.2$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.51-91.0-log Percona Server (GPL), Release 91.0, Revision b59139e

Copyright (c) 2009-2021 Percona LLC and/or its affiliates
Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)


# 创建数据库sonar
mysql> create database sonar;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sonar              |
| sys                |
+--------------------+
5 rows in set (0.00 sec)
1
2
3
4
5
# 数据库连接

172.17.243.237
13306
root/root

1.2.下载安装包

1
2
3
https://www.sonarqube.org/downloads/

apache-maven-3.6.2-bin.tar.gz

1.3.安装SonarQube

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 安装 unzip
[root@aliyun-8g ~]# yum install unzip -y


# 解压
[root@aliyun-8g ~]# unzip sonarqube-6.7.4.zip


[root@aliyun-8g ~]# mkdir /opt/sonar
[root@aliyun-8g ~]# mv sonarqube-6.7.4/* /opt/sonar


# 创建sonar用户,必须sonar用于启动,否则报错
[root@aliyun-8g ~]# useradd sonar
# 更改sonar目录及文件权限
[root@aliyun-8g ~]# chown -R sonar. /opt/sonar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 修改sonar配置文件


# 修改配置
[root@aliyun-8g ~]# vim /opt/sonar/conf/sonar.properties

sonar.jdbc.username=root
sonar.jdbc.password=root

#----- MySQL 5.6 or greater
sonar.jdbc.url=jdbc:mysql://localhost:13306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

sonar.web.port=19000
# 注意:sonar默认监听9000端口,如果9000端口被占用,需要更改。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 启动sonar

[root@aliyun-8g ~]# cd /opt/sonar
[root@aliyun-8g sonar]# su sonar ./bin/linux-x86-64/sonar.sh start
Starting SonarQube...
Started SonarQube.


# 查看日志
[root@aliyun-8g sonar]# tail -f logs/sonar.log

cd /opt/sonar
su sonar ./bin/linux-x86-64/sonar.sh start 启动
su sonar ./bin/linux-x86-64/sonar.sh status 查看状态
su sonar ./bin/linux-x86-64/sonar.sh stop 停止
tail -f logs/sonar.log 查看日志
1
2
3
4
5
# 访问sonar

http://182.92.210.65:19000/
admin
admin

2.Docker安装SonarQube

2.1.安装PostgreSQL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
1.创建目录
# mkdir -p /devops/pg/data/psql
 
2.运行容器
docker run -d --network host --name pg12 --restart=always \
-e LANG="C.UTF-8" \
-e 'TZ=Asia/Shanghai' \
-e "POSTGRES_DB=postgres" \
-e "POSTGRES_USER=postgres" \
-e "POSTGRES_PASSWORD=postgres" \
-v /devops/pg/data/psql:/var/lib/postgresql/data \
postgres:12
 
3.进入容器
# docker exec -it pg12 /bin/sh
 
切换用户
# su - postgres
$ psql 
# \l

4.创建数据库:sonar
1
2
3
4
5
# 访问地址

182.92.210.65
5432
postgres/postgres

2.2.安装SonarQube

1
2
3
4
5
6
7
# 运行sonarqube容器

docker run -d --name sonarqube --restart=always --network host \
-e sonar.jdbc.username=postgres \
-e sonar.jdbc.password=postgres \
-e sonar.jdbc.url=jdbc:postgresql://172.17.243.237:5432/sonar \
sonarqube:7.6-community
1
2
3
4
# 访问地址

http://182.92.210.65:9000/
admin/admin

2.3.访问SonarQube

1
2
3
4
# token  
# token要记下来后面要使用

35a8b7ca2292539e0ff678e4c281621dc43f2363