gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)

文章目录

  • postgresql13.0安装
    • 1、配置postgresql数据库
    • 2、进入postgresql创建数据库
  • 代码质量管理平台--sonarqube安装
    • 1、前置依赖+下载
    • 2、安装unzip并解压sonarqube并移动到`/usr/local`:
    • 3、修改sonarqube相应的配置
    • 4、新增用户,并将目录所属权赋予该用户:
    • 5、启动:
    • 6、界面访问+登录
    • 7、在界面产生令牌+sonarqube分析项目代码
  • 可能出现的问题
    • 关于sonarqube安装的前置问题
    • yum安装unzip时报错
    • sonarqube启动不起来/启动后马上关闭
    • 执行`mvn sonar:sonar \`报错`BUILD FAILURE`

postgresql13.0安装

官网给出的各种环境下安装postgresql步骤:https://www.postgresql.org/download/

CentOS7+jdk17为例:
gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)_第1张图片

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

sudo yum install -y postgresql13-server

sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13

1、配置postgresql数据库

yum安装完,默认的pgsql-13的数据目录在/var/lib/pgsql/13/data/
除非/var目录可用空间很大,否则需要修改数据目录

#创建数据目录&修改属主属组
mkdir -p /data/postgresql-13.0/
chown postgres: -R /data/postgresql-13.0/
 
#初始化pgsql(指定数据目录)
sudo -u postgres /usr/pgsql-13/bin/initdb --encoding=UTF-8 --username=postgres --pgdata=/data/postgresql-13.0/data
#--encoding 字符集
#--username 启动用户
#--pgdata 数据目录(数据目录如已存在会报错)

gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)_第2张图片

记录配置文件路径,修改listen_addresses = '*',postgresql启动参数

vim /data/postgresql-13.0/data/postgresql.conf

在这里插入图片描述

定义哪些服务器、可以用什么样的方式访问postgresql

vim /data/postgresql-13.0/data/pg_hba.conf   
# 如下,允许所有库被远程连接,需要账密验证
# host     all            all             0.0.0.0/0               md5

gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)_第3张图片

修改service文件(修改数据目录)

vim /usr/lib/systemd/system/postgresql-13.service   #修改后:Environment=PGDATA=/data/postgresql-13.0/data/
systemctl daemon-reload

在这里插入图片描述

#启动postgresql-13
systemctl start postgresql-13

2、进入postgresql创建数据库

在前面已经修改认证文件/var/lib/pgsql/data/pg_hba.conf能够使用默认用户postgres不需要密码进入数据库

psql -U postgres   

gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)_第4张图片

创建新用户

#新建用户sonar,密码xxxxxx
create user sonar with password '自定义密码';
 
#创建数据库sonar并指定owner为sonar
create database sonar with owner sonar;
 
#授权sonar用户在数据库sonar拥有所有权限
grant all on database sonar to sonar;

使用\q命令退出数据库,设置登录数据库需要密码:前三个trust修改为md5

vim /data/postgresql-13.0/data/pg_hba.conf

gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)_第5张图片

代码质量管理平台–sonarqube安装

1、前置依赖+下载

postgresql、sonarqube(sonarqube6.6以上版本不支持MySQL)
下载地址:https://www.sonarsource.com/products/sonarqube/downloads/historical-downloads/
gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)_第6张图片

2、安装unzip并解压sonarqube并移动到/usr/local

yum install unzip​
unzip sonarqube-9.9.0.65466.zip​
mv sonarqube-9.9.0.65466 /usr/local/

3、修改sonarqube相应的配置

vim /usr/local/sonarqube-9.9.0.65466/conf/sonar.properties
修改:
1.sonar.jdbc.username=sonar
2.sonar.jdbc.password=xxx​x
3.sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonar​
4.sonar.web.context=/sonar​
5.sonar.web.host=0.0.0.0
6.sonar.web.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
7.sonar.web.port=9000
8.sonar.ce.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
9.sonar.search.javaOpts=-Xmx512m -Xms512m -XX:MaxDirectMemorySize=256m -XX:+HeapDumpOnOutOfMemoryError
10.sonar.search.port=9001
11.sonar.path.data=data
12.sonar.path.temp=temp
在这里插入图片描述

4、新增用户,并将目录所属权赋予该用户:

useradd sonar
chown -R sonar:sonar sonarqube-9.9.0.65466

5、启动:

#启动
sudo -u sonar /usr/local/sonarqube-9.9.0.65466/bin/linux-x86-64/sonar.sh start
#停止
sudo -u sonar /usr/local/sonarqube-9.9.0.65466/bin/linux-x86-64/sonar.sh stop
#重启
sudo -u sonar /usr/local/sonarqube-9.9.0.65466/bin/linux-x86-64/sonar.sh restart

在这里插入图片描述

6、界面访问+登录

http://http://10.27.201.84:9000/sonar​
开启防火墙:vim /etc/sysconfig/iptables新增9000端口​

登录,默认账户和密码都是admin
gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)_第7张图片

登陆之后需要修改密码
gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)_第8张图片

7、在界面产生令牌+sonarqube分析项目代码

并将项目代码使用以下命令进行提交由sonarqube进行分析,完成后,查看相应的分析结果
gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)_第9张图片

在git中输入以下代码,-Dsonar.login=后面的值是在sonarqube中生成的

mvn sonar:sonar \
  -Dsonar.host.url=http://10.27.201.84:9000/sonar \
  -Dsonar.login=squ_cde46383d52c8f82f6607e5ebe134384fa2a725a

gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)_第10张图片

在这里插入图片描述
gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)_第11张图片
gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)_第12张图片

之后就可以点进去详细查看bug等信息:
gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)_第13张图片

可能出现的问题

关于sonarqube安装的前置问题

sonarqube官方文档
里面明确写出了sonarqube各个版本 对应的 jdk版本支持的数据库
一定要严格按照官网给出的支持情况去选择对应的版本去配置,否则一定会报错!!!
建议使用新版,不要因为postgresql数据库没有使用过去选择旧版,问题会层出不穷!!!

yum安装unzip时报错

gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)_第14张图片
解决方法:yum install --assumeyes unzip即可

sonarqube启动不起来/启动后马上关闭

gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)_第15张图片
在安装路径下的logs文件夹中,如果运行成功应该会有如图几个日志,如果没有成功运行,点开nohup.log、sonar.log文件去看报错信息。

常见的几个原因:
1、文件的执行权限问题
sonarqube不支持root身份启动运行,只能创建一个用户去启动,需要给sonarqube的安装文件给新用户设置权限,按照本文操作给最外层的sonarqube9.9.0.65466文件设置权限后内层的文件也应该都是修改完的状态,但不排除个别文件没有修改成功,按照日志文件的报错内容找到该文件,重新执行chowm命令完成权限分配,重启sonarqube即可。

2、elasticsearch进程的最大文件描述符
日志中显示max file descriptors [4096] for elasticsearch process is too low,elasticsearch进程的最大文件描述符从4096增加到至少65535,可以在/etc/security/limits.conf文件中添加以下行:
A hard nofile 65536
A soft nofile 65536
其中A代表启动sonarqube的用户

3、虚拟内存区域的最大数量 [65530] 太低了
日志中显示max virtual memory areas vm.max_map_count [65530] is too low, increase to at least
解决:vim /etc/sysctl.conf添加:vm.max_map_count=655360
gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)_第16张图片
保存后:sysctl -p
在这里插入图片描述

执行mvn sonar:sonar \报错BUILD FAILURE

这种:
在这里插入图片描述
这种:
gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)_第17张图片
IDEA打开项目,执行cleancompile,再次执行mvn sonar:sonar \

你可能感兴趣的:(Jenkins持续集成+Git,postgresql,sonarqube,linux)