zoukankan      html  css  js  c++  java
  • SonarQube系列一、Linux安装与部署

    【前言】

    随着项目团队规模日益壮大,项目代码量也越来越多。且不说团队成员编码水平层次不齐,即便是老手,也难免因为代码量的增加和任务的繁重而忽略代码的质量,最终的问题便是bug的增多和代码债务的堆积。因此,代码review便日益提上了日程。当然人工review的效率还是相当低下的,于是我们采用了自动化代码review的工具,便是今天的主角:SonarQube。

    本系列主要讲述sonarqube的安装部署以及如何集成jenkins自动化分析.netcore项目。目录如下:

    1. SonarQube系列一、Linux安装与部署
    2. SonarQube系列二、分析dotnet core/C#代码
    3. SonarQube系列三、Jenkins集成SonarQube(dotnetcore篇)

    【SonarQube简介】

    SonarQube® 是一种自动代码审查工具,用于检测代码中的错误,漏洞和多余的代码。它可以与您现有的工作流程集成,以便在项目分支和拉取请求之间进行连续的代码检查。比如:

    1. SonarQube集成 gitlab,在分支推送的时候自动进行代码检查分析,生成代码报告。
    2. SonarQube集成 jenkins,在代码构建的时候自动进行代码分析,生成代码报告。

    总之,SonarQube是可以配合一切好用的CI/CD工具进行自动化分析代码并生成代码报告,通过报告我们可以看到代码中可能存在的bug和代码债务。

    官方网站:https://www.sonarqube.org/

    【SonarQube安装】

    打开官网(上述官网地址),便可以很容易看到官方文档的菜单,安装步骤在官网很清楚了,我们参考文档进行安装,这里记录整个安装的过程以便帮助一些看文档迷惑的学者。

    官方文档地址:https://docs.sonarqube.org/latest/

    1.首先别忙着下载

    左侧有下拉框可以选择sonarqube的各个版本,我们可以选择切换不同的版本以查看不同时期的文档

    我们首先打开 Requirements ,查看当前版本的软硬件支持。

    • SonarQube 依赖于Java 环境,也就是需要安装Jre,在这里写了支持的版本:

    • SonarQube 支持的数据库有:PostgreSQLMicrosoft SQL ServerOracle,注意7.9版本已经不对MySql进行官方的支持了,如果执意要用 Mysql 可能会遇到很多坑(我就被坑的不轻)。当然有的朋友想用Mysql数据库,那么可以选择安装 7.7 以下版本(包括7.7)。
    • SonarQube 运行需要ES(ElasticSearch),当然这个不用我们安装,下载的安装包已经包含了ES。

    因为我用到了Mysql数据库,综合软硬件说明我选择了7.6版本的SonarQube进行下载安装。

    2.下载 SonarQube

    同样在左侧菜单找到 Setup and Upgrade 选项,打开以后按步骤找到 Download 链接,下载对应版本的安装包。

    SonarQube 的安装包是不分平台的,默认把所有平台的运行命令都下载下来,使用者根据不同环境运行不同的运行脚本。

    下载完成后,我们把安装包 sonarqube-7.6.zip 放在linux服务器的安装目录(喜欢的任意位置),然后用解压命令解压

    unzip sonarqube-7.6.zip

    进入文件夹,我们了解几个重要的目录

    • bin目录存放了各个环境的启动脚本
    • conf目录存放着sonarqube的配置文件
    • logs目录存放着启动和运行时的日志文件

    3.配置 SonarQube

    关于jdk的安装这里就不多说了,我们直接进入sonarqube 的配置。

    我们首先需要通过配置文件修改 sonarqube 的 mysql 连接字符串等信息,打开 conf 目录的 sonar.properties

    我们只需要修改mysql部分就ok了,其他不用过多设置

    #----- DEPRECATED 
    #----- MySQL >=5.6 && <8.0
    # Support of MySQL is dropped in Data Center Editions and deprecated in all other editions
    # Only InnoDB storage engine is supported (not myISAM).
    # Only the bundled driver is supported. It can not be changed.
    sonar.jdbc.url=jdbc:mysql://localhost:39901/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&maxAllowedPacket = 16777216&useSSL=false
    sonar.jdbc.username=sonarqube
    sonar.jdbc.password=xxxxx

    这里的配置是按照官方文档的介绍,在mysql添加了一个 sonarqube 的用户,并且创建了一个数据库叫 sonarqube ,且将数据库的读写执行权限赋给 sonarqube用户,用于在站点初始化以及后续存储设置数据时对数据库进行修改。

    sonarqube web 默认端口号为 9000 如果想修改成其他端口可以通过下面这个设置修改其他端口号。

    wrapper.conf 这个配置文件里配置了java命令地址,sonarqube 的日志文件目录等,可以关注下自己的 java 命令路径,其他不用太过关注。

    4.SonarQube 启动

    打开 sonarqube  的下载目录的bin目录,里面列举了各个平台的启动脚本

    启动之前先使用 chown 命令将sonarqube-7.6及其子目录授权给一个非root的用户,sonarqube及其es等软件禁止 root账户启动,因此需要切换一个非root账户,授权的用户需要有bin目录及其子目录的读取和可执行的权限。

    然后我们找到对应平台的脚本,我的系统是64位的linux,进入 linux-x86-64 目录

    启动sonar,执行 sonar.sh 脚本,并添加 start  参数

    ./sonar.sh  start

    如果不添加参数,会出现如下提示,是因为该脚本有必要的参数,包含了sonar服务的启动/停止/重启/dump等操作,可以根据使用场景提供不同的参数。

    启动之后,我们浏览器访问对应服务器ip地址的9000端口(防火墙要提前放行9000端口)

    如果没有成功,那么就在logs目录查看启动日志。一般有几种:

    • es.log es或mysql等数据库连接报错,一般是mysql的连接字符串账号密码错误或者sonar账号权限不够;
    • es.log 数据库初始化失败 MySQL sonar 账户权限不足
    • sonar.log sonar服务的启动日志
    • web.log sonarqube web的启动日志

    如果一切顺利的话,就会进入登陆页面,账号密码都是 admin。

    【SonarQube插件】

    关于插件我本身使用不多,如果看不惯英文界面,那么就先装个中文插件吧。

    在顶部的菜单栏,配置里面,按下图步骤,在下面插件搜索栏输入chinese,即可搜到中文插件,然后点安装。

    等待安装完毕,提示重启sonar后,便自动切换到了中文界面。

     【系统展望】

     那么到此,sonar的安装与配置便告一段落了,如果有任何问题欢迎留言区讨论~

  • 相关阅读:
    背水一战 Windows 10 (26)
    背水一战 Windows 10 (25)
    背水一战 Windows 10 (24)
    背水一战 Windows 10 (23)
    背水一战 Windows 10 (22)
    背水一战 Windows 10 (21)
    背水一战 Windows 10 (20)
    背水一战 Windows 10 (19)
    背水一战 Windows 10 (18)
    背水一战 Windows 10 (17)
  • 原文地址:https://www.cnblogs.com/7tiny/p/11269774.html
Copyright © 2011-2022 走看看