安装SonarQube
1.环境准备
- SonarQube服务器需要JDK 17 , Sonar-Scanner需要JDK 11 或 JDK 17
- PostgreSQL 11到15版本
1.1.安装JDK 17(SonarQube主机)
# 1.下载安装包
[sonar@sonar ~]# wget https://download.oracle.com/java/17/latest/jdk-17_linux-aarch64_bin.rpm
# 2.安装jdk17
[sonar@sonar ~]# sudo yum -y install jdk-17_linux-x64_bin.rpm
# 3.检查java是否安装成功
[sonar@sonar ~]# java -version
1.2.安装PostgreSQL 15 (DB主机)
1.2.1.下载PostgreSQL
# 1.安装依赖
[root@postgres ~]# curl -# -O https://ftp.postgresql.org/pub/source/v15.7/postgresql-15.7.tar.bz2
1.2.2.编译安装 PostgreSQL
# 1.解决预编译依赖
[root@postgres ~]# yum -y install gcc make libicu-devel readline-devel zlib-devel openssl-devel libxml2-devel bzip2
# 2.安装PostgreSQL
[root@postgres ~]# tar jxvf postgresql-15.7.tar.bz2 -C /usr/local/src && /usr/local/src/postgresql-15.7/configure && make && make install && echo "安装PostgreSQL成功"
1.2.3.初始化数据库
# 1.创建登录用户
[root@postgres ~]# useradd postgres
[root@postgres ~]# echo "123456" | passwd --stdin postgres
# 2.创建存储目录 并 修改所属权限
[root@postgres ~]# mkdir -p /data/postgresql/{data,log}
[root@postgres ~]# chown -R postgres.postgres /data/postgresql
# 3.配置软连接
[root@postgres ~]# ln -s /usr/local/pgsql/bin/* /usr/local/bin
# 4.切换用户
[root@postgres ~]# su - postgres
# 5.初始化数据库
[postgres@postgres ~]$ initdb -D /data/postgresql/data
1.2.4.启动数据库
# 1.编辑配置文件
[postgres@postgres ~]$ vim /data/postgresql/data/postgresql.conf # 文件详情在下方
[postgres@postgres ~]$ vim /data/postgresql/data/pg_hba.conf # 文件详情在下方
[postgres@postgres ~]$ exit
# 2.添加环境变量
[root@postgres ~]# vim /etc/profile # 文件详情在下方
[root@postgres ~]# source /etc/profile
# 3.执行.service脚本,通过systemd进行控制
[root@postgres ~]# vim postgresql_service.sh # 文件详情在下方
[root@postgres ~]# sh postgresql_service.sh
# 4.启动postgresql 并设置开机自启
[root@postgres ~]# systemctl enable --now postgresql
[root@postgres ~]# psql
# 1.postgresql.conf 配置文件
listen_addresses = '*' # 监听所有网段 , 默认监听本机
port = 5432 # 监听的TCP端口号 , 默认值5432
max_connections = 100 # 最大连接数 , 默认值100
log_directory = '/data/postgresql/log' # log日志存放路径
# pg_hba.conf 配置文件
# 仅允许192.168.1.0网段连接
# TYPE : 访问控制条目 local用于本地连接;host用于远程连接
# DATABASE : 允许访问的数据库
# USER : 允许访问数据库的用户
# ADDRESS : 允许访问数据库的IP
# METHOD : 连接数据库认证方式,trust免密认证;md5 , password表示需要密码认证;peer需要操作系统的用户身份认证
# TYPE DATABASE USER ADDRESS METHOD
host all all 10.39.84.0/24 trust
# 2.环境变量
export PGDATA=/data/postgresql/data
export PGHOME=/usr/local/pgsql
export PGPORT=5432
export PGUSER=postgres
export PATH=$PATH:/usr/local/pgsql/bin
# 3.postgresql_service.sh 脚本
#!/bin/bash
service(){
cat > /usr/lib/systemd/system/postgresql.service <<EOF
[Unit]
Description=postgresql
After=network.target
[Service]
User=$PGUSER
Group=$PGUSER
Type=forking
ExecStart=/usr/local/pgsql/bin/pg_ctl -D $PGDATA start
Restart=always
ExecStop=/usr/local/pgsql/bin/pg_ctl -D $PGDATA stop -m fast
[Install]
WantedBy=multi-user.target
EOF
}
service
systemctl daemon-reload
1.2.5.准备数据库及用户
# 1.创建新用户
postgres=# CREATE ROLE sonar WITH LOGIN PASSWORD '123456';
# 2.创建 sonar 数据库
postgres=# CREATE DATABASE sonar OWNER sonar;
# 3.授予数据库访问权限
postgres=# GRANT ALL PRIVILEGES ON DATABASE sonar TO sonar;
postgres=# \q
1.2.6.sonar服务器登录数据库
# 1.需要注意 一定要先创建 Linux 用户 sonar , 不然无法操作 PostgreSQL
[root@sonar ~]# useradd sonar
[root@sonar ~]# echo "123456" | passwd --stdin sonar
# 2.给予sonar用户权限
[root@sonar ~]# vim /etc/sudoers
sonar ALL=(ALL) ALL
# 3.本地需要安装postgresql才可以连接到远端DB , 但是直接yum安装可能遇到DB版本冲突问题
[root@sonar ~]# yum -y install postgresql
[root@sonar ~]# su sonar
[sonar@sonar root]$ psql -h 10.39.84.100 -p 5432 -U sonar -d sonar
2.部署 SonarQube
2.1.环境准备
# 1.安装必要软件
[root@sonar ~]# yum install -y wget zip unzip
# 2.调整系统参数
[root@sonar ~]# vim /etc/sysctl.conf # 文件详情在下方
[root@sonar ~]# vim /etc/security/limits.conf # 文件详情在下方
[root@sonar ~]# sysctl -p /etc/sysctl.conf
# 1./etc/sysctl.conf 配置文件
vm.max_map_count = 262144
fs.file-max = 65536
# 2./etc/security/limits.conf 配置文件
sonarqube soft nproc 4096
sonarqube hard nproc 4096
sonarqube soft nofile 65536
sonarqube hard nofile 65536
2.2.准备软件 及 数据目录
# 1.准备数据目录
[root@sonar ~]# mkdir -p /data/sonar/{data,temp}
# 2.下载 SonarQube 9.9LTA (9.9.6.92038版本)
[root@sonar ~]# curl -O -# https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.9.6.92038.zip
[root@sonar ~]# unzip sonarqube-9.9.6.92038.zip -d /usr/local
[root@sonar ~]# mv /usr/local/sonarqube-9.9.6.92038 /usr/local/sonar
# 3.授予权限
[root@sonar ~]# chown -R sonar:sonar /usr/local/sonar
[root@sonar ~]# chown -R sonar:sonar /data/sonar
2.3.修改配置文件
# 1.配置环境变量
[root@sonar ~]# vim /etc/profile
export SONAR_HOME=/usr/local/sonar
[root@sonar ~]# source /etc/profile
# 2.准备好Postgres驱动程序
wget https://jdbc.postgresql.org/download/postgresql-42.7.3.jar -O $SONAR_HOME/lib/postgresql.jar
# 3.配置 SonarQube
[root@sonar ~]# vim $SONAR_HOME/conf/sonar.properties # 文件详情在下方
#在配置文件开头增加以下配置
#数据库配置
sonar.jdbc.username=sonar
sonar.jdbc.password=123456
sonar.jdbc.url=jdbc:postgresql://10.39.84.100:5432/sonar
#文件配置
sonar.path.data=/data/sonar/data
sonar.path.temp=/data/sonar/temp
#Web配置
sonar.web.host=0.0.0.0
sonar.web.port=9000
sonar.web.context=/
2.4.开放端口
[root@sonar ~]# firewall-cmd --add-port=9000/tcp --permanent
[root@sonar ~]# firewall-cmd --reload
2.5.启动 SonarQube
# 设置开机自启
[root@sonar root]$ vim /usr/lib/systemd/system/sonarqube.service
[Unit]
Description=SonarQube service
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/local/sonar/bin/linux-x86-64/sonar.sh start
ExecStop=/usr/local/sonar/bin/linux-x86-64/sonar.sh stop
User=sonar
Group=sonar
Restart=always
LimitNOFILE=65536
LimitNPROC=10240
[Install]
WantedBy=multi-user.target
[root@sonar ~]# systemctl daemon-reload
[root@sonar ~]# systemctl enable --now sonarqube
[root@sonar ~]# systemctl status sonarqube
2.6.登录 SonarQube
http://10.39.84.100:9000/
默认用户名密码 :
用户名 : admin
密码 : admin
新的密码 :
密码 : 123456
3.配置SonarQube
3.1.安装中文插件
-
方法一
[截图]
-
方法二
-
手动下载插件 https://github.com/xuhuisheng/sonar-l10n-zh/tree/master
-
存放到/usr/local/sonar/extensions/plugins/路径下
-
3.2.配置Sonar-Scanner
-
下载sonar-scanner
[sonar@sonar ~]# wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-5.0.1.3006-linux.zip [sonar@sonar ~]# unzip sonar-scanner-cli-5.0.1.3006-linux.zip -d /usr/local [sonar@sonar ~]# mv /usr/local/sonar-scanner-5.0.1.3006-linux /usr/local/sonar-scanner -
配置环境变量
[sonar@sonar ~]# vim /etc/profile export SONAR_SCANNER_HOME=/usr/local/sonar-scanner export PATH=$SONAR_SCANNER_HOME/bin:$PATH [sonar@sonar ~]# source /etc/profile -
校验sonar-scanner配置结果
[sonar@sonar ~]# sonar-scanner -v -
修改sonar-scanner的jdk为本机jdk(默认自带)
[sonar@sonar ~]# vim /usr/local/sonar-scanner/bin/sonar-scanner use_embedded_jre=false
3.3.使用Sonar-Scanner(这个自己研究吧,以下仅供参考)
-
在代码下载到工作目录下 , 在该目录下创建扫描文件(fileName.properties)
sonar.projectKey指定项目的关键字,sonar.host.url指定服务器地址(可以直接在配置文件中写死),projectName指定项目的名称,projectVersion指定项目的版本(可以用构建时间和构建ID定义),login指定登录用户名,password指定登录用户密码,projectDescription指定项目的描述信息,links.homepage指定项目的主页(超链接),sources指定扫描的目录,sourceEncoding指定扫描时的编码,**java.binaries**指定编译后的类文件目录(必填),**java.test.binaries**指定编译后的测试类目录,**java.surefire.report**指定测试报告目录。[sonar@sonar ~]# sonar-scanner -Dsonar.host.url=http://10.39.84.100:9000 \ -Dsonar.projectKey=devops-maven-service \ -Dsonar.projectName=devops-maven-service \ -Dsonar.projectVersion=1.1 \ -Dsonar.login=admin \ -Dsonar.password=wg1q2w3e \ -Dsonar.ws.timeout=30 \ -Dsonar.projectDescription="my first project!" \ -Dsonar.links.homepage=http://10.39.84.100/devops/devops-maven-service \ -Dsonar.links.ci=http://10.39.84.100:8080/job/demo-pipeline-service/ \ -Dsonar.sources=src \ -Dsonar.sourceEncoding=UTF-8 \ -Dsonar.java.binaries=target/classes \ -Dsonar.java.test.binaries=target/test-classes \ -Dsonar.java.surefire.report=target/surefire-reports

浙公网安备 33010602011771号