跳到主要内容

实战-SonarQube平台安装配置-2023.6.24-测试成功

实战:SonarQube平台安装配置-2023.6.24(安装成功)(docker方式)

image-20220604141147681-1695248620973-2

目录

[toc]

推荐文章

https://www.yuque.com/xyy-onlyone/aevhhf?# 《玩转Typora》

image-20230624094222589

实验环境

sonarqube:9.9.0-community (docker方式部署)
SonarScanner 4.8.0.2856 (部署在宿主机上)

实验软件

链接:https://pan.baidu.com/s/1lI7wgnMqdrRl6aFxTSENDw?pwd=0820 提取码:0820 2023.6.24-实战:SonarQube平台安装配置(安装成功)(docker方式)

image-20230624095239942

1、安装配置docker

  • sonarQube安装官方文档

https://docs.sonarqube.org/9.9/setup-and-upgrade/install-the-server/

image-20230624101416202

  • Java (Oracle JRE 11 or OpenJDK 11)

下面是基于Docker的方式安装部署SonaQube:

## 创建数据目录
mkdir -p /data/devops6/sonarqube/{sonarqube_conf,sonarqube_extensions,sonarqube_logs,sonarqube_data}
chmod 777 -R /data/devops6/sonarqube/

## 运行
docker run -itd --name sonarqube9 \
-p 9000:9000 \
-v /data/devops6/sonarqube/sonarqube_conf:/opt/sonarqube/conf \
-v /data/devops6/sonarqube/sonarqube_extensions:/opt/sonarqube/extensions \
-v /data/devops6/sonarqube/sonarqube_logs:/opt/sonarqube/logs \
-v /data/devops6/sonarqube/sonarqube_data:/opt/sonarqube/data \
sonarqube:9.9.0-community

## 验证
[root@Devops6 ~]#docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
663638ab23b3 sonarqube:9.9.0-community "/opt/sonarqube/dock…" About a minute ago Up About a minute 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp sonarqube9
docker logs -f sonarqube9

image-20230624080743854

这里看到Process[ce] is up说明,sonarQube程序已经启动成功了。

访问: http://172.29.9.101:9000/ 默认密码是 admin admin

image-20230624081351364

被要求强制更改密码:admin/Admin@123

image-20230624081427779

sonarqube:9.9.0版本的登录界面:

image-20230624081513538

2、安装中文插件

在线安装或者手动上传插件。

在线安装:操作如下图

来到插件市场安装插件:

装完插件,是需要重启sonarQube的。

点击接受风险后,才可以在插件市场里安装插件:

image-20230624081648524

image-20230624081726732

重启server:

image-20230624081814314

image-20230624081825916

重启后,登录查看效果:

image-20220524100022021

image-20230624081926826

3、配置Scanner

scanner的类型有很多, 可以通过官网:https://docs.sonarqube.org/8.9/analysis/overview/ 获取支持的列表。

  • 变更项目代码: 可以使用构建工具进行扫描。例如maven、ant、gradle可以在配置文件中引入对应的配置。
  • 不变更项目代码配置: 可以使用Jenkins或其他平台的扩展插件, 以及使用命令行进行扫描。

image-20230624101219931

使用更加灵活的命令行工具进行扫描, 可以在不更改项目配置的前提下进行代码扫描:

复制链接地址:

https://docs.sonarqube.org/8.9/analysis/scan/sonarscanner/

image-20220524200518777

## 进入实验目录 
cd /data/devops6

## 下载包
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.8.0.2856-linux.zip

## 解压
unzip sonar-scanner-cli-4.8.0.2856-linux.zip

## 设置环境变量
vim /etc/profile
export SONAR_SCANNER_HOME=/data/devops6/sonar-scanner-4.8.0.2856-linux
export PATH=$SONAR_SCANNER_HOME/bin:$PATH
source /etc/profile


## 测试生效
[root@Devops6 sonar-scanner-4.8.0.2856-linux]# sonar-scanner -v
INFO: Scanner configuration file: /data/devops6/sonar-scanner-4.8.0.2856-linux/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarScanner 4.8.0.2856
INFO: Java 11.0.17 Eclipse Adoptium (64-bit)
INFO: Linux 3.10.0-957.el7.x86_64 amd64

image-20230624083122181

⚠️ 注意JDK版本

这里请注意JDK版本的问题, 默认安装的sonarscanner是使用自带的jdk。通过上面的显示可以发现是jdk1.11版本, 如果想使用系统默认的jdk版本,可以修改scanner可执行程序的配置。如下所示:

[root@devops sonar-scanner-4.7.0.2747-linux]#pwd
/usr/local/sonar-scanner/sonar-scanner-4.7.0.2747-linux
[root@devops sonar-scanner-4.7.0.2747-linux]#ls
bin conf jre lib

[root@devops sonar-scanner-4.7.0.2747-linux]#vim bin/sonar-scanner
### 编辑约第42行, true改成false
42 use_embedded_jre=false
43 if [ "$use_embedded_jre" = true ]; then
44 export JAVA_HOME="$sonar_scanner_home/jre"
45 fi

### 更改后,再次验证,发现变成了系统jdk版本。 更改生效。
[root@devops sonar-scanner-4.7.0.2747-linux]#sonar-scanner -v
INFO: Scanner configuration file: /usr/local/sonar-scanner/sonar-scanner-4.7.0.2747-linux/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarScanner 4.7.0.2747
INFO: Java 1.8.0_322 Temurin (64-bit)
INFO: Linux 3.10.0-957.el7.x86_64 amd64

https://docs.sonarqube.org/9.9/requirements/prerequisites-and-overview/

image-20230624083536077

FAQ

老版本默认登录界面

  • 这是SonarQubeLTS 7.9.6 的默认首页:

image-20220524072350685

  • 这是SonarQubeLTS 8.9.8 的默认首页:

image-20220524074657906

配置强制登录

默认所有项目都可以公开的查看,在企业内肯定要配置成私有的。只有登录后才能查看。(sonarqube8.9.1 默认已经开启了,低于该版本的可以手动开启)

image-20220524103317371

手动安装插件

手动上传插件

下载好的插件包会放在downloads目录下,重启sonarQube后就被放到了plugins目录下;

或者直接放在plugins目录下,重启sonarQube下,也是可以的;

image-20220524100147091

为什么需要手动安装? 由于不同区域的不同网络原因,可能在线源会出现下载插件失败的情况,超时。本次以中文插件为例,为大家讲述如何手动离线安装一次插件。

Caused by: org.sonar.api.utils.SonarException: Fail to download: https://github.com/xuhuisheng/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.29/sonar-l10n-zh-plugin-1.29.jar (no proxy)
at org.sonar.core.util.DefaultHttpDownloader.failToDownload(DefaultHttpDownloader.java:155)
at org.sonar.core.util.DefaultHttpDownloader.download(DefaultHttpDownloader.java:150)
at org.sonar.server.plugins.PluginDownloader.downloadRelease(PluginDownloader.java:152)
at org.sonar.server.plugins.PluginDownloader.download(PluginDownloader.java:126)
... 47 common frames omitted
Caused by: java.net.SocketTimeoutException: Read timed out

image-20220524101413718

选择Releases 找到当前SonarQube对应的版本, 我的版本是8.9.1, 所以下载 :

https://github.com/xuhuisheng/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-8.9/sonar-l10n-zh-plugin-8.9.jar

image-20220524101519086

cd /data/cicd/sonarqube/sonarqube_extensions/downloads
wget https://github.com/xuhuisheng/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.29/sonar-l10n-zh-plugin-1.29.jar
chmod +x sonar-l10n-zh-plugin-1.29.jar
docker restart sonarqube

获得插件下载url:

image-20220524102333050

sonarQube的lib目录

## lib目录(低于SonarQube8.9.1可以配置持久化,以支持多分支插件。)

mkdir -p /data/cicd/sonarqube/sonarqube_lib
cd /data/cicd/sonarqube/sonarqube_lib
docker cp sonarqube:/opt/sonarqube/lib/* ./

docker run -itd --name sonarqube \
-p 9000:9000 \
-v /data/cicd2/sonarqube/sonarqube_conf:/opt/sonarqube/conf \
-v /data/cicd2/sonarqube/sonarqube_extensions:/opt/sonarqube/extensions \
-v /data/cicd2/sonarqube/sonarqube_logs:/opt/sonarqube/logs \
-v /data/cicd2/sonarqube/sonarqube_data:/opt/sonarqube/data \
-v /data/cicd2/sonarqube/sonarqube_lib:/opt/sonarqube/lib \
sonarqube:8.9.1-community

安装包下载

  • 安装包下载链接:

https://www.sonarqube.org/downloads/

image-20220524082740219

image-20220524082813643

image-20220524082824759

Embedded数据库

注意:这里的Embedded数据库仅仅作为实验目的

生产里一般会用pg数据库:

image-20220524093806102

image-20220524093922003

k8s方式部署snoarQube

https://docs.sonarqube.org/9.9/setup-and-upgrade/deploy-on-kubernetes/deploy-a-sonarqube-cluster-on-kubernetes/

image-20230624095423559

Elasticearch里的数据不是很重要

Elasticearch里的数据不是很重要,就是缓存。当然,也是可以不对数据做持久化的。

image-20230624101620885

扩展:Docker运行sonarscanner

docker run \
--rm \
-e SONAR_HOST_URL="http://${SONARQUBE_URL}" \
-e SONAR_LOGIN="myAuthenticationToken" \
-v "${YOUR_REPO}:/usr/src" \
sonarsource/sonar-scanner-cli

关于项目参数可以参考:https://docs.sonarqube.org/latest/analysis/analysis-parameters/ 各种语言的扫描示例:https://docs.sonarqube.org/latest/analysis/languages/

关于我

我的博客主旨:

  • 排版美观,语言精炼;
  • 文档即手册,步骤明细,拒绝埋坑,提供源码;
  • 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!

🍀 微信二维码 x2675263825 (舍得), qq:2675263825。

image-20230107215114763

🍀 微信公众号 《云原生架构师实战》

image-20230107215126971

🍀 语雀

https://www.yuque.com/xyy-onlyone

image-20230624093747671

🍀 csdn https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

image-20230107215149885

🍀 知乎 https://www.zhihu.com/people/foryouone

image-20230107215203185

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!