7.代码自动上线—Jenkins集成SonarQube质检

2022-03-17 分类:git-jenkins 阅读(330) 评论(0)

孙富阳, 江湖人称没人称。多年互联网运维工作经验,曾负责过孙布斯大规模集群架构自动化运维管理工作。擅长Web集群架构与自动化运维,曾负责国内某大型博客网站运维工作。

1.SonarQube基本概述

1.什么是SonarQube

SonarQube是一个开源的代码质量管理系统,用于检测代码中的错误、漏洞。它可以与Jenkins集成,让我们能自动化进行代码质量扫描

2.使用SonarQube前提

1.SonarQube基于Java开发,所以需要安装Open JDK8版本。
2.SonarQube需要依赖MySQL数据库,至少5.6版本以上。
3.SonarQube的小型实例至少需要4GB内存,如果是大型实例需要16GB

2.SonarQube服务安装

Sonarqube7.9以上版本已经不支持mysql数据库了

1.安装Sonarqube依赖工具

[root@sonarqube ~]# yum install git java-11 unzip wget -y
[root@sonarqube ~]# cat /etc/yum.repos.d/psql.repo
[psql]
name=psql repo
baseurl=https://mirror.tuna.tsinghua.edu.cn/postgresql/repos/yum/9.6/redhat/rhel-7.9-x86_64/
enabled=1
gpgcheck=0
[root@sonarqube ~]# yum install -y  postgresql96-server
##初始化数据库
[root@sonarqube ~]# /usr/pgsql-9.6/bin/postgresql96-setup initdb

2.启动数据库,然后为数据库配置密码。最后创建一个sonar库

[root@sonarqube ~]#  su - postgres
[postgres@sonarqube ~]$ psql 
psql (9.6.22)
Type "help" for help.
postgres=# CREATE USER sonar WITH PASSWORD 'sfy';
CREATE ROLE
postgres=# CREATE DATABASE sonar OWNER sonar;
CREATE DATABASE
postgres=# GRANT ALL PRIVILEGES ON DATABASE sonar TO sonar;
GRANT
postgres=# exit
postgres-# \q
###修改一下数据库的配置文件
[root@sonarqube ~]# grep -Ev "#|^$" /var/lib/pgsql/9.6/data/pg_hba.conf
local   all             all                                     md5
host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 ident
[root@sonarqube ~]$ systemctl start postgresql-9.6.service
[root@sonarqube ~]$ systemctl enable postgresql-9.6.service

3.下载sonarqube,并安装解压至/usr/local

[root@sonarqube ~]# wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.9.2.46101.zip
[root@sonarqube ~]# unzip sonarqube-8.9.2.46101.zip -d /usr/local/
[root@sonarqube ~]# useradd sonar
[root@sonarqube ~]# chown -R sonar.sonar /usr/local/sonarqube-8.9.2.46101/
[root@sonarqube ~]# ln -s /usr/local/sonarqube-8.9.2.46101/ /usr/local/sonarqube

4.修改sonarqube连接数据库配置文件

[root@sonarqube ~]# vim /usr/local/sonarqube/conf/sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=sfy
sonar.jdbc.url=jdbc:postgresql://localhost/sonar

5. 在Linux 上运行,必须确保以下配置

vm.max_map_count大于或等于524288
fs.file-max大于或等于131072
运行声纳Qube的用户至少可以打开131072文件描述符
运行声纳Qube的用户可以打开至少8192线程
您可以通过以下命令查看值:
sysctl vm.max_map_count
sysctl fs.file-max
ulimit -n
ulimit -u
您可以通过运行以下命令动态地为当前会话设置它们,如下所列命令为:root
sysctl -w vm.max_map_count=524288
sysctl -w fs.file-max=131072
ulimit -n 131072
ulimit -u 8192
如果运行sonarQube的用户没有权限至少拥有131072个打开的描述符,则您必须在/etc/security/limits.d/99-sonarqube.conf(或         /etc/security/limits.conf)插入:sonarqube
sonarqube   -   nofile   131072
sonarqube   -   nproc    8192
如果您正在使用systemd sonarQube,您必须在[service]中指定单位文件中的这些限制:systemd
[Service]
...
LimitNOFILE=131072
LimitNPROC=8192
...

6.启动sonarqube服务(由于es必须普通用户启动,所以不能使用root用户,否则启动失败)

[root@sonarqube ~]# su - sonar -c "/usr/local/sonarqube/bin/linux-x86-64/sonar.sh start"

7.访问sonarqube界面访问 通过浏览器访问http://hostname:9000

点击登录-->输入用户名:admin 用户密码:admin

中文汉化,点击配置-应用市场-搜索chinese-点击安装

安装后重启服务就变为中文了

登录后配置tocken令牌

dd0a20e1cbc40b08a71af1766550f1c838ee66fe

点击创建项目-创建令牌,使用已有令牌,将刚才的令牌复制进来

点击继续

继续选择分析你的项目-选择构建技术

如果要分析其他语言,需要配置参考如下官方连接https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

点击项目名称后可以看到质检结果

##还需要安装一下如下插件
sonar-java-plugin-5.6.0.15032.jar
sonar-scm-git-plugin-1.3.0.869.jar
sonar-csharp-plugin-7.3.0.5690.jar
sonar-javascript-plugin-4.0.9.5862.jar
sonar-scm-svn-plugin-1.6.0.869.jar
sonar-css-plugin-1.1.1.1010.jar
sonar-i10n-zh-plugin-1.20.jar
sonar-typescript-plugin-1.9.0.3766.jar
sonar-flex-plugin-2.5.1.1831.jar
sonar-php-plugin-3.0.0.4537.jar
onar-xml-plugin-2.0.1.2020.jar
sonar-html-plugin-3.0.1.1444.jar
sonar-python-plugin-1.9.0.2010.jar

评论已关闭

登录

忘记密码 ?

切换登录

注册

鲁ICP备2021019243号-1