sonarqube安装

概述

  • 特点
1
2
3
4
5
6
7
SonarQube是一个开源的代码质量管理系统,用于检测代码中的错误,漏洞和代码规范。
它可以现有的Gitlab、Jenkins集成,以便在项目拉取后进行连续的代码检查。

SonarQube基于java开发,所以需先安装JDK。

sonarqube从7.8起,不再支持mysql
sonarqube从7.9起,不再支持jdk11以下版本
  • 组件
1
2
3
4
SonarQube Server:sonarqube服务端,接受客户端扫描报告
SonarQube Database:ES/及数据库引擎oracle,postgresql,mssql
SonarQube Plugins:可以后期在sonarqube服务端安装插件
SonarQube Scanner:安装在客户端扫描工具

安装相关

  • 修改系统参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
sysctl -w vm.max_map_count=262144
sysctl -w fs.file-max=65536
ulimit -n 65536
ulimit -u 4096

cat >> /etc/sysctl.conf << EOF
vm.max_map_count=262144
fs.file-max=65536
EOF

# sonarqube不能用root用户执行
useradd sonar
echo "sonar" | passwd --stdin sonar

cat > /etc/security/limits.d/99-sonarqube.conf <<EOF
sonarqube - nofile 65536
sonarqube - nproc 4096
EOF

# 修改es相关参数
# max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
  • 安装jdk
1
2
# 安装jdk11版本
yum localinstall jdk-11.0.2_linux-x64_bin.rpm -y
  • 安装pgsql
1
2
3
4
5
6
7
8
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install postgresql12 postgresql12-server -y
/usr/pgsql-10/bin/postgresql-12-setup initdb
systemctl enable postgresql-12
systemctl start postgresql-12

# 验证是否安装成功
psql -V
  • 创建sonar库(pgsql)
1
2
3
4
5
6
7
8
9
10
# 登录postsql 
su - postgres
psql
# 创建数据库和用户,并把数据库分配给该用户,并授予权限
create user sonar with password 'sonar';
create database sonar owner sonar;
grant all on database sonar to sonar;
# 退出
\q
exit
  • 配置pgsql
1
2
3
4
5
配置文件/var/lib/pgsql/10/data/pg_hba.conf,将 ident 全部改为 md5
底行模式:%s/ident/md5/g

# 重启pgsql
systemctl restart postgresql-12
  • 安装sonarqube
1
2
3
4
5
6
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.6.0.39681.zip
unzip sonarqube-8.6.0.39681.zip -d /data/
mv sonarqube-8.6.0.39681 sonarqube-8
groupadd sonar
useradd sonar -g sonar
chown -R sonar:sonar /data/sonarqube
  • 修改sonarqube配置文件
1
2
3
4
5
6
7
vim /data/sonarqube-8/conf/sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:postgresql://localhost/sonar

sonar.web.host=0.0.0.0
sonar.web.port=80
  • 启动相关命令
1
2
3
4
5
6
7
8
9
# 启动
su sonar /data/sonarqube-8/bin/linux-x86-64/sonar.sh start
# su - sonar -c "/data/sonarqube-8/bin/linux-x86-64/sonar.sh start"
# 查看状态
su sonar /data/sonarqube-8/bin/linux-x86-64/sonar.sh status
# 停止
su sonar /data/sonarqube-8/bin/linux-x86-64/sonar.sh stop
# 查看日志
tail -f /data/sonarqube-8/logs/sonar.log
  • 登录
1
2
ip:9000
默认密码:admin admin,首次登录需改密码

插件安装

1
2
3
4
5
6
# 汉化插件
Administration > Marketplace > 搜索chinese,出现一个Chinese Pack,然后点击install;界面会提示reset重启SonarQube,重新打开则为汉化版。

# 安装代码检查插件
默认已安装C、Java、Python、Php、Js等代码的质量分析工具,如果有html、css、go等需安装相关插件。
Marketplace中搜索,css、html等
-------------本文结束感谢您的阅读-------------
原创技术分享,感谢您的支持。