Docker安装部署SonarQube代码审查工具

  SonarQube是一种主流的代码质量持续检测工具。可以将其用于代码库的静态和动态分析。SonarQube集成到 KubeSphere流水线后,如果在运行的流水线中检测到问题,可以直接在仪表板上查看常见代码问题,例如 Bug 和漏洞。

1. 安装SonarQube服务器

  要将SonarQube 集成到您的流水线,必须先安装 SonarQube 服务器

helm version
version.BuildInfo{Version:"v3.11.1", GitCommit:"293b50c65d4d56187cd4e2f390f0ada46b4c4737", GitTreeState:"clean", GoVersion:"go1.18.10"}

tar xvf helm-v3.11.1-linux-amd64.tar.gz
mv linux-amd64/ helm3
mv ~/helm3/helm /usr/local/bin/

  使用helm安装sonarqube:

helm version
version.BuildInfo{Version:"v3.9.0", GitCommit:"7ceeda6c585217a19a1131663d8cd1f7d641b2a7", GitTreeState:"clean", GoVersion:"go1.17.5"}

请您确保使用 Helm 3 安装 SonarQube Server

helm upgrade --install sonarqube sonarqube --repo https://charts.kubesphere.io/main -n kubesphere-devops-system  --create-namespace --set service.type=NodePort
Release "sonarqube" does not exist. Installing it now.
NAME: sonarqube
LAST DEPLOYED: Wed Mar  1 20:46:26 2023
NAMESPACE: kubesphere-devops-system
STATUS: deployed
REVISION: 1
NOTES:
1. Get the application URL by running these commands:
  export NODE_PORT=$(kubectl get --namespace kubesphere-devops-system -o jsonpath="{.spec.ports[0].nodePort}" services sonarqube-sonarqube)
  export NODE_IP=$(kubectl get nodes --namespace kubesphere-devops-system -o jsonpath="{.items[0].status.addresses[0].address}")
  echo http://$NODE_IP:$NODE_PORT

2. 获取SonarQube控制台地址

# export NODE_PORT=$(kubectl get --namespace kubesphere-devops-system -o jsonpath="{.spec.ports[0].nodePort}" services sonarqube-sonarqube)
# export NODE_IP=$(kubectl get nodes --namespace kubesphere-devops-system -o jsonpath="{.items[0].status.addresses[0].address}")
# echo http://$NODE_IP:$NODE_PORT
http://10.1.248.77:32556

3. 配置SonarQube服务器

  访问 SonarQube 控制台:
  执行以下命令查看 SonarQube 的状态:

kubectl get pod -n kubesphere-devops-system
NAME                                   READY   STATUS      RESTARTS   AGE
sonarqube-postgresql-0                 1/1     Running     0          16m
sonarqube-sonarqube-84f6585f85-269bj   1/1     Running     0          16m

只有在 SonarQube启动并运行后才能访问 SonarQube 控制台

  在浏览器中访问SonarQube控制台 http://{$Node IP}:{$NodePort},然后使用默认帐户 admin/admin 登录
在这里插入图片描述
 
  步创建 SonarQube 管理员令牌 (Token):
在这里插入图片描述
 
  点击 Security 并输入令牌名称,例如 kubesphere
在这里插入图片描述
  token码:3bba7b7ed04b23068eb33db670742116499a1335
  创建 Webhook 服务器:
  执行以下命令获取SonarQube Webhook的地址:

# export NODE_PORT=$(kubectl get --namespace kubesphere-devops-system -o jsonpath="{.spec.ports[0].nodePort}" services devops-jenkins)
# export NODE_IP=$(kubectl get nodes --namespace kubesphere-devops-system -o jsonpath="{.items[0].status.addresses[0].address}")

# echo http://$NODE_IP:$NODE_PORT/sonarqube-webhook/
http://10.1.248.77:/sonarqube-webhook/

  预期输出结果:

http://10.1.248.77:/sonarqube-webhook/

  依次点击 Administration、Configuration 和 Webhooks创建一个 Webhook:
在这里插入图片描述
 
  点击 Create:
在这里插入图片描述
 
  在弹出对话框中输入 Name 和 Jenkins Console URL(即 SonarQube Webhook 地址)。点击 Create 完成操作。
在这里插入图片描述

4. 为新工程创建SonarQube Token

  如果需要单独的项目使用单独的token值,那么就需要创建一个项目,当然也可以多个项目共用admin账号的token
  需要一个 SonarQube 令牌,以便您的流水线可以在运行时与 SonarQube 通信
  在 SonarQube 控制台上,点击Add a project:
在这里插入图片描述
 
在这里插入图片描述
 
在这里插入图片描述
 
  输入工程名称,例如 java-sample,然后点击 Generate:
在这里插入图片描述
 
  创建令牌后,点击Continue:
在这里插入图片描述
 
  选择Maven复制下图框中的序列号,如果要在流水线中使用,则需要在凭证中添加此序列号
在这里插入图片描述

mvn sonar:sonar \
  -Dsonar.projectKey=java-demo \
  -Dsonar.host.url=http://172.26.160.18:32556 \
  -Dsonar.login=ffa87c76f833d8a5f6183a7ed4435d595de963d8
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

降世神童

学都学了,看也看了,感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值