sonarqube入门
2021-12-26 本文已影响0人
87d6dc4b11a7
SonarQube 实例包含三个组件:
- Scanner
- SonarQube应用服务
- 数据库服务
SonarQube 应用服务运行以下进程:
- 为 SonarQube 用户界面提供服务的 Web 服务。
- 基于 Elasticsearch 的搜索服务。
- 负责处理代码分析报告并将其保存在 SonarQube 数据库中的计算引擎。
数据库主要存储:
- 代码扫描期间生成的代码质量和安全性指标和问题。
- SonarQube 实例配置
在K8S上部署
使用SonarQube Helm charts进行安装 ,
helm repo add sonarqube https://SonarSource.github.io/helm-chart-sonarqube
helm repo update
kubectl create namespace sonarqube
helm upgrade --install -n sonarqube sonarqube-lts sonarqube/sonarqube-lts
[root@localhost ~]# helm upgrade --install -n sonarqube sonarqube-lts sonarqube/sonarqube-lts
Release "sonarqube-lts" does not exist. Installing it now.
NAME: sonarqube-lts
LAST DEPLOYED: Sun Dec 26 00:41:34 2021
NAMESPACE: sonarqube
STATUS: deployed
REVISION: 1
NOTES:
1. Get the application URL by running these commands:
export POD_NAME=$(kubectl get pods --namespace sonarqube -l "app=sonarqube-lts,release=sonarqube-lts" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl port-forward $POD_NAME 8080:9000 -n sonarqube
helm charts中sonarqube的service使用的是ClusterIP,只能在集群内部访问,我们修改为NodePort,方便访问。
[root@localhost ~]# kubectl edit svc sonarqube-lts-sonarqube-lts -n sonarqub
······
spec:
clusterIP: 10.233.25.119
clusterIPs:
- 10.233.25.119
externalTrafficPolicy: Cluster
ports:
- name: http
nodePort: 32100
port: 9000
protocol: TCP
targetPort: http
selector:
app: sonarqube-lts
release: sonarqube-lts
sessionAffinity: None
type: NodePort
使用admin/admin登录。
安装、卸载插件
安装插件:
1、下载要安装的插件,确保插件版本需要与 SonarQube 版本兼容。
2、将下载的 jar 放到$SONARQUBE_HOME/extensions/plugins
目录,如果是升级插件,还要删除该插件的老版本。
3、重新启动SonarQube。
卸载插件:
1、从$SONARQUBE-HOME/extensions/plugins
文件夹中删除需要卸载的插件。
2、重新启动 SonarQube。
升级SonarQube
1、卸载当前的SonarQube Helm charts
2、更换镜像版本,重新install
3、跳转到http://yourSonarQubeServerURL/setup按照提示进行配置