尘叶心繁

SonarQube代码审查(1) - 安装SonarQube

电脑版发表于:2021/6/6 17:37

SonarQube代码审查(1) - 安装SonarQube

SonarQube简介

SonarQube 是一种自动代码审查工具,用于检测代码中的错误、漏洞和代码异味。它可以与您现有的工作流程集成,以支持跨项目分支和拉取请求的持续代码检查。

安装SonarQube

安装mysql并创建SonarQube数据库(仅仅支持SonarQube 7.9的以下的)

安装mysql请参考:https://www.tnblog.net/hb/article/details/4888
然后在mysql中创建sonar数据库

  1. create database sonar;
  2. show databases;

安装postgres

  1. docker pull postgres:11.4
  2. docker run --name postgres1 -e POSTGRES_PASSWORD=pwd123456 -e POSTGRES_USER=root -e POSTGRES_DB=sonardb -p 5432:5432 -d postgres:11.4
  3. docker exec -it postgres1 /bin/bash
  4. psql template1
  5. # 创建数据库
  6. create database sonarqubedb;
  7. # 创建用户
  8. create user sonarqube with encrypted password 'pwd123456';
  9. # 把所有权限都给它
  10. grant all privileges on database sonarqubedb to sonarqube
  11. # 退出
  12. \q
  13. exit

官网下载

通过访问官网到下载地址下载相对应的包:https://www.sonarqube.org/success-download-community-edition/

  1. wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.9.0.43852.zip
  2. yum install unzip # 安装解压程序
  3. unzip sonarqube-8.9.0.43852.zip # 解压包
  4. mkdir /opt/sonar
  5. mv sonarqube-8.9.0.43852/* /opt/sonar #移动文件
  6. useradd sonar # 创建 sonar 用户
  7. chown -R sonar /opt/sonar # 更改目录以及权限

修改sonar配置文件

  1. # 修改配置文件
  2. vi /opt/sonar/conf/sonar.properties
  1. # 添加数据库密码与账户
  2. sonar.jdbc.username=root
  3. sonar.jdbc.password=pwd123456
  4. # mysql
  5. sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
  6. # postgres
  7. sonar.jdbc.username=sonarqube
  8. sonar.jdbc.password=pwd123456
  9. sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonardb

使用sonar账号启动

  1. cd /opt
  2. su sonar /opt/sonar/bin/linux-x86-64/sonar.sh start
  3. tail -f sonar/logs/sonar.20210606.log # 查看日志

接着我们来启动日志追踪,发现报错了

原来是SonarQube 7.9以上版本已不再支持mysql

解决数据库后,它很妖艳又要Java11才能支持

解决问题(安装java11)

  1. yum search java-11
  2. yum install java-11-openjdk -y
  3. # 然后我们通过下面的命令选择java-11 JDK(我们选择2)
  4. alternatives --config java
  5. java -version

然后再次运行,elasticsearch报错

  1. # 解决第一个问题
  2. vi /etc/security/limits.conf
  3. # 添加下面内容
  4. * soft nofile 65536
  5. * hard nofile 65536
  1. # 解决第二个问题
  2. vi /etc/sysctl.conf
  3. # 最后添加一行
  4. vm.max_map_count=262144
  5. # 保存后执行,立马生效然后再次尝试启动SonarQube
  6. /sbin/sysctl -p

貌似成功了,访问一下9000端口看看(默认端口是9000,可以在刚刚的配置文件里面设置其他端口)

  1. # 关闭防火墙
  2. systemctl stop firewalld
  3. # 查看内网ip
  4. ifconfig

由于坑可能比较多大家尽量通过 /opt/sonar/logs 日志去查,排查顺序sonar.log—>es.log—>web.log,如有问题可以直接在群里或qq上@我。

  1. # 重启SonarQube
  2. rm -rf sonar/data/es7/
  3. # 查看网站端口
  4. netstat -tlunp
  5. # 杀掉elasticsearch的pid
  6. kill {pid}
  7. # 停掉sonarQube
  8. su sonar /opt/sonar/bin/linux-x86-64/sonar.sh stop
  9. /opt/sonar/bin/linux-x86-64/sonar.sh stop
  10. # 在ps中找到sonar并杀掉
  11. ps -ef | grep sonar
  12. kill {pid}
  13. # 启动
  14. su sonar /opt/sonar/bin/linux-x86-64/sonar.sh start

最后通过127.0.0.1:9000访问到该页面,默认账号和密码为admin:admin

更改了密码之后就进来了

然后去生成我们Jenkins所需要的Token密钥

关于TNBLOG
TNBLOG,技术分享。技术交流:群号677373950
ICP备案 :渝ICP备18016597号-1
App store Android
精彩评论
猜你喜欢
    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    10. 10
    11. 11
    / 11