根据国际惯例,先来介绍下sonar是做啥的?
Sonar介绍
SonarQube是一种自动代码审查工具,用于检测代码中的错误,漏洞和代码异味。它可以与您现有的工作流程集成,以便在项目分支和拉取请求之间进行连续的代码检查。
架构与流程
- 一个SonarQube服务器启动3个主要流程:
- Web服务器,供开发人员,管理人员浏览高质量快照并配置SonarQube实例
- 基于Elasticsearch的Search Server从UI返回搜索
- 计算引擎服务器负责处理代码分析报告并将其保存在SonarQube数据库中
- 一个SonarQube数据库存储:
- SonarQube实例的配置(安全性,插件设置等)
- 项目,视图等的质量快照
- 服务器上安装了多个SonarQube插件,可能包括语言,SCM,集成,身份验证和治理插件
- 在构建/持续集成服务器上运行一个或多个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下载中文包,即可支持中文。