一、必要环境
注意:需要Jdk11、PostgreSQL数据库支持,同时必须确保最低环境要求
官网下载地址:https://www.sonarqube.org/downloads/
SonarQube汉化包:https://github.com/xuhuisheng/sonar-l10n-zh/releases/tag/sonar-l10n-zh-plugin-8.9
基础要求:https://docs.sonarqube.org/8.9/requirements/requirements/
二、安装JDK 11
上传下载好的OpenJDK文件
tar -zxvf openjdk-11+28_linux-x64_bin.tar.gz
# 修改JAVA_HOME为/usr/java/jdk-11
# 编辑/etc/profile文件
vi /etc/profile
# 按" i "键进行编辑,设置环境变量,ESC退出编辑," :wq "保存内容
# Java Environment
export JAVA_HOME=/usr/java/jdk-11
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
# 使环境变量生效
source /etc/profile
三、安装PostgreSQL 12
PostgreSQL 12:https://blog.youkuaiyun.com/weixin_49724150/article/details/121648666
四、配置基础环境
添加sonarqube系统用户
#创建用户组
groupadd sonarqube
#创建用户
useradd sonarqube -g sonarqube
#设置密码
passwd sonarqube //设置2次同样的密码
修改limits.conf文件
您可以使用以下命令查看这些值:
sysctl vm.max_map_count
sysctl fs.file-max
ulimit -n
ulimit -u
如果不满足要求,则设置limits.conf文件和sysctl.conf文件。
#修改limits.conf文件
vim /etc/security/limits.conf
#插入内容
sonarqube soft nofile 131072
sonarqube hard nofile 131072
sonarqube soft nproc 8192
sonarqube hard nproc 8192
修改sysctl.conf文件
#修改sysctl.conf文件
vim /etc/sysctl.conf
#插入内容
vm.max_map_count = 524288
fs.file-max = 131072
#输入命令:sysctl -p,使/etc/sysctl.conf配置文件立即生效。
sysctl -p
创建sonarqube数据库
#切换用户,执行后提示符会变为’-bash-4.2$’
su - postgres
#登录数据库,执行后提示符变为 ‘postgres=#’
psql
#创建用户和密码
create user sonar with password 'sonar';
#创建数据库指定所属者
create database sonarqube owner sonar encoding='UTF8';
#将数据库得权限,全部赋给某个用户
grant all on database sonarqube to sonar;
#退出数据库
\q
#备注其他:列出所有库\l 列出所有用户\du 列出库下所有表\d
#登出
exit
五、安装SonarQube
上传安装包和汉化包
#进入sonarqube目录
cd /home/sonarqube/
解压安装包
如果unzip报错,请先执行安装【yum -y install unzip】命令。
unzip sonarqube-8.9.2.46101.zip
移动汉化包,即可完成汉化
mv sonar-l10n-zh-plugin-8.9.jar /home/sonarqube/sonarqube-8.9.2.46101/extensions/plugins
1
创建持久数据文件和临时文件的路径
#创建文件夹
mkdir -p /var/sonarqube/data
mkdir -p /var/sonarqube/temp
#授权
chown -R sonarqube:sonarqube /var/sonarqube/data
chown -R sonarqube:sonarqube /var/sonarqube/temp
修改sonar.properties核心配置文件
#修改sonar.properties
vim /home/sonarqube/sonarqube-8.9.2.46101/conf/sonar.properties
#修改内容如下:
#User credentials.
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
#PostgreSQL 9.3 or greater
sonar.jdbc.url=jdbc:postgresql://192.168.1.110:5432/sonarqube
#WEB SERVER
sonar.web.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
sonar.web.host=192.168.1.110
sonar.web.context=/sonarqube
sonar.web.port=9000
#OTHERS
sonar.path.data=/var/sonarqube/data
sonar.path.temp=/var/sonarqube/temp
修改wrapper.conf核心配置文件
可以通过【which java】命令,查找java安装路径
#修改sonar.properties
vim /home/sonarqube/sonarqube-8.9.2.46101/conf/wrapper.conf
#修改内容如下:
wrapper.java.command=/usr/lib/jvm/java-11-openjdk-11.0.12.0.7-0.el7_9.x86_64/bin/java
切换sonarqube用户启动程序
#授权
chown -R sonarqube:sonarqube /home/sonarqube/
#切换sonarqube用户
su - sonarqube
cd /home/sonarqube/sonarqube-8.9.2.46101/bin/linux-x86-64
#修改sonar.sh的RUN_AS_USER=sonarqube,否则后面设置开机自启会报错!
RUN_AS_USER=sonarqube
#启动sonarqube程序
./sonar.sh start
#其他命令
Usage: ./sonar.sh { console | start | stop | force-stop | restart | status | dump }
查看日志是否启动成功
cd /home/sonarqube/sonarqube-8.9.2.46101/logs
#查看sonar日志
tail -1000f sonar.20210930.log
#查看web日志
tail -1000f web.log
#查看es日志
tail -1000f es.log
访问
地址:http://192.168.1.110:9000/sonarqube
账号:admin
密码:admin
六、开机启动
编写开机自启动脚本
#创建开机自启动调用文件
vim /etc/systemd/system/sonarqube.service
#添加如下内容:
[Unit]
Description=SonarQube service
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/home/sonarqube/sonarqube-8.9.2.46101/bin/linux-x86-64/sonar.sh start
ExecStop=/home/sonarqube/sonarqube-8.9.2.46101/bin/linux-x86-64/sonar.sh stop
User=sonarqube
Group=sonarqube
Restart=always
LimitNOFILE=131072
LimitNPROC=8192
[Install]
WantedBy=multi-user.target
设置开机启动
#加入开机启动
systemctl enable sonarqube.service
#重启测试
reboot
七、常用命令
systemctl start sonarqube.service //启动
systemctl stop sonarqube.service //关闭
systemctl restart sonarqube.service //重启
systemctl status sonarqube.service //查看状态
八、jenkins集成sonarqube
1.安装插件SonarQube Scanner
2.sonar生成令牌,jenkins的凭据需要用到
3.jenkins系统配置中添加SonarQube servers的配置信息
4.全局配置工具中安装SonarQube Scanner
5.jenkins新建自由构建项目
6.去jenkins部署项目,部署完毕查看sonarqube检测情况
九、sonarqube集成ldap
sonar.properties 配置如下:
# LDAP Configuration
sonar.security.realm=LDAP
ldap.url=ldap://10.32.176.180:389
ldap.bindDn=xxxx
ldap.bindPassword=xxxx
# User Configuration
ldap.user.baseDn=OU=技术创新部,OU=xxxx,OU=组织机构测试,DC=xxxx,DC=co
ldap.user.request=(&(objectClass=user)(sAMAccountName={login}))
ldap.user.realNameAttribute=displayName
ldap.user.emailAttribute=mail
# Group Configuration
ldap.group.baseDn=OU=技术创新部,OU=xxxx,OU=组织机构测试,DC=xxxx,DC=co
ldap.group.request=(&(objectClass=group)(member={dn})(|(distinguishedName=CN=sonar-test,OU=测试组,OU=技术创新部,OU=xxxx,OU=组织机构测试,DC=xxxx,DC=co)(distinguishedName=CN=sonar-devops,OU=运维组,OU=技术
创新部,OU=xxxx,OU=组织机构测试,DC=xxxx,DC=co)))
ldap.group.idAttribute=sAMAccountName