搭建SonarQube(Developer)服务器
背景
之前出过一篇关于SonarQube社区版的镜像启动的方法,搭建SonarQube服务来检测代码,但是有些服务从开发版才支持,最低开发板(比如DevOps PR集成),今天我们就来搭建一台开发版的SonarQube服务器。(除了社区版,其他版本是不支持镜像的)
环境介绍
硬件介绍:
官方文档介绍:最小2核运行内存
我们这里用的是2核4G的Ubuntu镜像的虚拟机
系统里面最低的配置:
sudo sysctl -w vm.max_map_count=262144 sudo sysctl -w fs.file-max=65536 ulimit -n 65536 ulimit -u 4096
如果低于配置会导致系统启动失败。
外部安装:
运行环境:Open JDK-17
数据库:Postgresql - 16.1
检测工具: SonarQube(Developer)
环境准备
openjdk-17& openjre-17
我们首先安装JDK首先更新升级一下我们的包管理器。
sudo apt update sudo apt upgrade
sudo apt install openjdk-17-jdk sudo apt install openjdk-17-jre
查看安装Java版本
然后我们可以查看一下
java --version
数据库postgresql - 16.1
我们来安装数据库我哦们使用的是16
1.我们添加下载postgresql 的存储库。
sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
2.更新一下包管理器
sudo apt-get update
3.安装数据库
sudo apt-get -y install postgresql
sudo apt-get update sudo apt-get upgrade sudo apt-get install wget unzip -y
4.设置数据库自启动
sudo systemctl start postgresql sudo systemctl enable postgresql
5.更改数据库用户的原始密码
sudo passwd postgres
6.进入到数据库的shell命令行创建用户和角色
su - postgres createuser sonar ALTER USER sonar WITH ENCRYPTED password 'sonar'; CREATE DATABASE sonarqube OWNER sonar; grant all privileges on DATABASE sonarqube to sonar;
7.退出命令行,回到Linux操作界面
\q exit
SonarQube(Developer)
1.安装开发板的SonarQube,这个链接怎么来的呢,我们可以去官网下载压缩包。解压缩后发现里面有Win,Mac,Linux三种系统的包,但是在表面上并没有明确区分。
sudo wget https://binaries.sonarsource.com/CommercialDistribution/sonarqube-developer/sonarqube-developer-10.3.0.82913.zip
2.我们可以使用命令”ls“查看下载的安装包。
3.解压缩压缩包到opt文件夹,并移动到"opt下的"sonarqube""文件夹内。
sudo unzip sonarqube-developer-10.3.0.82913.zip -d /opt sudo mv /opt/sonarqube-10.3.0.82913 /opt/sonarqube
4.创建sonar用户和组,用创建的用户和组来启动Sonarqube。
sudo groupadd sonar sudo useradd -c "user to run SonarQube" -d /opt/sonarqube -g sonar sonar sudo chown sonar:sonar /opt/sonarqube -R
5. 创建完成后,我们修改Sonarqube配置文件,将刚刚的用户密码以及数据库的驱动链接配置进去。
sudo vim /opt/sonarqube/conf/sonar.properties
写入以下代码
sonar.jdbc.username=sonar sonar.jdbc.password=sonar sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube
其中5432是我们数据库的端口
6.修改启动文件
sudo vim /opt/sonarqube/bin/linux-x86-64/sonar.sh
将我们的启动角色写入到文件中
RUN_AS_USER=sonar
7.切换到sonar用户,打开启动文件所在的文件夹,启动文件
sudo su sonar cd /opt/sonarqube/bin/linux-x86-64/ ./sonar.sh start
切换到sonar用户
找到启动文件所在的文件夹
启动SonarQube
调试
1.查看SonarQube的运行状态
./sonar.sh status
2.查看运行日志
tail /opt/sonarqube/logs/sonar.log
3.配置系统限制
我们看上图,可以看到Process exit:78,一般这种情况是因为SonarQube内置的Elasticsearch因为系统配置低于需求配置所以没有启动起来。
(Elasticsearch 用于促进快速准确的信息检索。它是在专用的 Java 进程中执行的。)
4.查看配置的大小,并重新设置成最低数值’262144‘
sudo sysctl -a|grep vm.max_map_count
sudo sysctl -w vm.max_map_count=262144
5.然后我们重新启动,看到日志,运行状态,一切OK了。
开启端口
1.回到Azure portal ,将端口”9000“打开
界面访问
http://"yourIPAddress":9000
1.我们访问一下服务,http://“ip”:9000
2.初始账号密码都是admin
3.强制重置密码
4.然后我们一进来就会提示需要License。
查看系统
1.转到如下图所示,我们可以看到系统是Developer版的。
2.数据库信息
3.如果我们有了 License,我们可以在如下图所示地方填补。
(注:这款软件,目前是代码检测的主流,只有社区版书免费的,开发版及以上都是需要付费的,当然你可以选择试用,但是试用也需要向厂商提工单,请求一个免费体验14天的License Key,不然我们是无法运行,代码检测的,亲测结论)