Sonar7.9结合postgres部署

2020-07-31 14:38:34 浏览数 (1)

根据国际惯例,先来介绍下sonar是做啥的?

Sonar介绍

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

架构与流程
  1. 一个SonarQube服务器启动3个主要流程:
    • Web服务器,供开发人员,管理人员浏览高质量快照并配置SonarQube实例
    • 基于Elasticsearch的Search Server从UI返回搜索
    • 计算引擎服务器负责处理代码分析报告并将其保存在SonarQube数据库中
  2. 一个SonarQube数据库存储:
    • SonarQube实例的配置(安全性,插件设置等)
    • 项目,视图等的质量快照
  3. 服务器上安装了多个SonarQube插件,可能包括语言,SCM,集成,身份验证和治理插件
  4. 在构建/持续集成服务器上运行一个或多个SonarScanner来分析项目

部署

sonar最小部署需要一台机器,配置在2c4G,或者内存最低不能低于2G,详情可参考官方文档

环境准备
  • 修改内核参数
  • 增加文件最大打开句柄数
  • 创建普通用户
  • 安装数据库
  • 准备jdk环境
修改内核参数
代码语言:javascript复制
sysctl -w vm.max_map_count=655360
增大系统打开文件数

可参考博客:修改最大打开文件数

创建普通用户
代码语言:javascript复制
useradd sonar
echo 123456 | passwd sonar --stdin
安装数据库

这里选择的是postgresql数据库,安装方式也是采用yum安装

代码语言:javascript复制
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install postgresql11
yum install postgresql11-server
/usr/pgsql-11/bin/postgresql-11-setup initdb
systemctl enable postgresql-11
systemctl start postgresql-11

centos7下载地址:centos7 其他系统仓库源下载地址:其他 修改postgres的默认端口,及允许其他客户端连接

代码语言:javascript复制
cd /var/lib/pgsql/11/data
vim postgresql.conf
port = 8084 
listen_addresses = '*'    #允许所有机器连接

vim pg_bba.conf
# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             0.0.0.0/0            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust

创建数据库,允许sonar连接

代码语言:javascript复制
su postgres
psql -U postgres
CREATE USER sonar WITH PASSWORD 'sonar123';
CREATE DATABASE sonar WITH OWNER sonar ENCODING 'UTF8';
准备jdk12

官方下载jdk12:下载地址

我这里服务器上存在了一个jdk1.8的版本,所以没有把jdk12添加至环境变量中,只需要在sonar的配置文件中指定jdk12的路径即可

安装sonar

下载地址:sonarqube

代码语言:javascript复制
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.9.1.zip
unzip sonarqube-7.9.1.zip
mv sonarqube-7.9.1 /usr/local/sonarqube

修改配置文件,使用jdk12

代码语言:javascript复制
vim wrapper.conf 
wrapper.java.command=/usr/local/jdk12/bin/java #指定jdk12的位置

修改配置文件,设置连接postgres的信息

代码语言:javascript复制
sonar.jdbc.username=sonar
sonar.jdbc.password=Sonar@123
sonar.jdbc.url=jdbc:postgresql://192.168.1.1:8084/sonar
sonar.web.host=0.0.0.0
sonar.web.port=9000

启动(需要切换至普通用户启动)

代码语言:javascript复制
chown -R sonar.sonar /usr/local/sonarqube
su sonar
cd /usr/local/sonarqube
./bin/linux-x86-64/sonar.sh start

启动完成后可去logs目录下查看日志,如果按照我上面的方式去做,基本不会有报错

访问测试

直接浏览器输入:ip:port的方式访问,可以在setting中找到market,然后搜索chinese下载中文包,即可支持中文。

0 人点赞