随笔 - 50  文章 - 0  评论 - 0  阅读 - 3159

Sonarqube

Sonarqube

1、准备

# 参考链接
https://docs.sonarsource.com/sonarqube/latest/requirements/prerequisites-and-overview/

1.1 jdk

apt update && apt install openjdk-17-jdk

1.2 postgresql

1、下载
cd /usr/local/src && wget -c https://ftp.postgresql.org/pub/source/v15.4/postgresql-15.4.tar.gz
2、前置准备
apt install make gcc # GNU make 3.81 或更高版本
3、安装
cd /usr/local/src
tar xf postgresql-15.4.tar.gz
cd postgresql-15.4
mkdir /apps
./configure --prefix=/apps/
make -j 4
make install
adduser postgres
mkdir -p /apps/postgresql/data
chown postgres -R /apps/postgresql
su - postgres
export LD_LIBRARY_PATH=/apps/postgresql/lib
echo "export LD_LIBRARY_PATH=/apps/postgresql/lib" > ~/.bashrc
/apps/postgresql/bin/initdb -D /apps/postgresql/data
vim /apps/postgresql/data/pg_hba.conf
# IPv4 local connections:
host    all             all             0.0.0.0/32            md5
vim /apps/postgresql/data/postgresql.conf
listen_addresses = '*'
/apps/postgresql/bin/pg_ctl -D /apps/postgresql/data -l /apps/postgresql/log/logfile start
# 创建数据库并授权
ln -sv /apps/postgresql/bin/psql /usr/bin/
psql
create database sonar;
create user sonar;
alter user sonar with password 'sonar123456';
alter role sonar createdb;
alter role sonar superuser;
alter role sonar createrole;
alter database sonar owner to sonar;
exit

1.3 参数优化

sysctl vm.max_map_count #需要大于等于524288
sysctl -w vm.max_map_count=524288
sysctl fs.file-max #需要大于等于131072
sysctl -w fs.file-max=131072
ulimit -n
ulimit -n 131072
ulimit -u
ulimit -u 8192

echo vm.max_map_count=524288 >> /etc/sysctl.conf
echo fs.file-max=131072 >> /etc/sysctl.conf
echo sonarqube   -   nofile   1000000 >> /etc/security/limits.conf
echo sonarqube   -   nproc    819200 >> /etc/security/limits.conf

grep SECCOMP /boot/config-$(uname -r)
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP_FILTER=y
CONFIG_SECCOMP=y

reboot

1.4 字体包

apt install libfreetype6

2、架构

3、安装

3.1 zip安装(sonarqube)

3.1.1 下载

https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-10.3.0.82913.zip

3.1.2 配置

unzip sonarqube-10.3.0.82913.zip
cd sonarqube-10.3.0.82913
vim conf/sonar.properties
# 配置数据库
sonar.jdbc.username=sonar # 数据库账号
sonar.jdbc.password=sonar123456 # 数据库密码
sonar.jdbc.url=jdbc:postgresql://172.31.3.42/sonar # 数据库地址和所用数据库
# 新建用户
adduser sonarqube
# 启动
su sonarqube
sonar start

3.1.3 插件安装

# 下载
https://github.com/xuhuisheng/sonar-l10n-zh/tags
# 安装
将jar包cp到/apps/sonarqube/extensions/plugins
# 重启
sonar restart

3.2 sonar-scanner

扫描器,可以和服务不在同一节点

3.2.1 zip安装

3.2.1.1 配置

# 下载
https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-5.0.1.3006-linux.zip
# 解压到指定目录即可使用
# 全局配置
vim /path/conf/sonar-project.properties
sonar.host.url=http://172.31.3.42:9000 #  指定sonarserver地址
sonar.sourceEncoding=UTF-8 # 指定编码格式

3.2.1.2 使用

ln -sv /apps/sonar-scanner/bin/sonar-scanner /usr/bin/
# 生成一个token
# 下载官方示例代码
https://codeload.github.com/SonarSource/sonar-scanning-examples/zip/refs/heads/master
# 扫描代码配置
参考连接:	https://docs-sonarsource-com.translate.goog/sonarqube/latest/analyzing-source-code/analysis-parameters/?_x_tr_sl=auto&_x_tr_tl=zh-CN&_x_tr_hl=zh-CN&_x_tr_hist=true#optional-parameters

/root/sonar-scanning-examples-master/sonar-scanner
vim sonar-project.properties
sonar.projectKey=org.sonarqube:sonar-scanner # 项目key,唯一标识id
sonar.projectName=Example of SonarScanner Usage # 显示的项目名称
sonar.projectVersion=1.0
sonar.sources=src,copybooks # 从sonar-project.properties目录下查找的子目录,也可使用绝对路径
sonar.sourceEncoding=UTF-8 # 指定编码格式 可以覆盖全局配置
sonar.projectBaseDir=/home/ftpdrop/cobol/project1 #指定扫描的根目录
sonar.scm.exclusions.disabled=true #禁用排除scm下的.gitingnore
sonar.cobol.copy.directories=copybooks
sonar.cobol.file.suffixes=cbl,cpy
sonar.cobol.copy.suffixes=cpy
sonar.flex.cobertura.reportPath=coverage-report/coverage-cobertua-flex.xml
sonar.pli.marginLeft=2
sonar.pli.marginRight=0

# 启动扫描,登录server提供的web界面进行查看
sonar-scanner  -Dsonar.token=sqa_bc5542534384b2260e7a07c99d9eac4b4ed4b92b

3.2.2 docker

docker run \
    --rm \
    -e SONAR_HOST_URL="http://${SONARQUBE_URL}" \ # 指定server地址:端口
    -e SONAR_SCANNER_OPTS="-Dsonar.projectKey=${YOUR_PROJECT_KEY}" \ # 指定项目key 
    -e SONAR_TOKEN="myAuthenticationToken" \ # 指定token
    -v ${YOUR_CACHE_DIR}:/opt/sonar-scanner/.sonar/cache \ # 映射缓存目录
    -v "${YOUR_REPO}:/usr/src" \ # 指定一个本地卷,将其映射
    sonarsource/sonar-scanner-cli # 镜像
例:
docker run --rm \
	-e SONAR_HOST_URL=http://172.31.3.42:9000 \
	-e SONAR_SCANNER_OPTS="-Dsonar.projectKey=test-docker1" \
	-e SONAR_TOKEN="sqa_bc5542534384b2260e7a07c99d9eac4b4ed4b92b" \
	-v "/root/sonar-scanning-examples-master/sonar-scanner:/usr/src" \
	quanheng.com/k8s/sonar-scanner-cli:5.0
# 登录server进行查看

3.2.3 配置分析

参考连接:	https://docs-sonarsource-com.translate.goog/sonarqube/latest/analyzing-source-code/analysis-parameters/?_x_tr_sl=auto&_x_tr_tl=zh-CN&_x_tr_hl=zh-CN&_x_tr_hist=true#optional-parameters

vim sonar-project.properties
sonar.projectKey=org.sonarqube:sonar-scanner # 项目key,唯一标识id
sonar.projectName=Example of SonarScanner Usage # 显示的项目名称
sonar.projectVersion=1.0
sonar.sources=src,copybooks # 从sonar-project.properties目录下查找的子目录,也可使用绝对路径
sonar.sourceEncoding=UTF-8 # 指定编码格式 
sonar.projectBaseDir=/home/ftpdrop/cobol/project1 #指定扫描的根目录
sonar.scm.exclusions.disabled=true #禁用排除scm下的.gitingnore
posted on   要快乐不要emo  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示