kubesphere3.2.1组件devops流水线使用Sonarqube代码质量分析 |
发表者:admin分类:Devops2022-01-19 21:40:12 阅读[672] |
kubesphere3.2.1组件devops流水线使用Sonarqube代码质量分析
一,环境说明。
1,主机配置。
IP | 系统 | 主机名称 | kubernetes信息 |
---|---|---|---|
192.168.1.23 | Centos7.9 | centos7-23 | master+worker节点 |
192.168.1.31 | Centos7.9 | centos7-31 | NFS存储+worker节点 |
2,kubesphere信息。
两台主机使用kk工具安装kubesphere3.2.1,然后安装应用商店,devops组件。这样就可以安装sonarqube代码质量分析
二,sonar具体安装过程。
1,kubesphere官网有安装说明,但是kubesphere3.2.1版本使用官方说明操作,容器部署后,会发现sonar容器连接pgsql数据库时,提示登陆数据库授权失败。
一直没有搞明白是helm的哪里配置文件出错。官方安装说明地址如下:将 SonarQube 集成到流水线 (kubesphere.io)
2,既然官方没法使用,那就只能自己找helm仓库,然后重装安装。
3,在Artifact Hub网站上面找到了一个sonar仓库信息,经测试可以正常安装。
4,helm具体安装命令如下:
5,查看sonar的UI地址命令。
6,得到以下Web地址,默认账号密码都是admin。
7,查看jenkins的webhook地址命令如下。
最后会出现jenkins的webhook地址。 http://192.168.1.23:30180/sonarqube-webhook/
8,其它的步骤与官网一样,不再重复说明。
三,其它问题说明。
其它步骤与官网操作一样,只是不清楚为什么,流水线没有显示关于代码分析的图形界面。
四,测试maven项目。
1,项目gitee地址: https://gitee.com/micoder/devops-java-sample.git。
环境:windows系统+JDK11+maven-3.8.3,全局配置文件: configuration/settings.xml 。点击下载
2,执行命令如下:
mvn clean install sonar:sonar -gs configuration/settings.xml
可以顺利完成代码分析。如果使用原版的settings.xml,会报一堆错误。
当然这里使用的sonarqube 版本: 9.2.4,版本比较新。
五,使用base镜像来实现代码分析
1,简单说,就是将kubesphere中的base镜像中的jdk8升级到jdk11,然后再安装maven工具,实现代码分析。
2,具体流水线配置内容如下:
pipeline {
agent {
node {
label 'base'
}
}
stages {
stage('checkout') {
agent none
steps {
container('base') {
git(credentialsId: 'gitee-id', url: 'https://gitee.com/micoder/devops-java-sample.git', branch: 'master', changelog: true, poll: false)
}
}
}
stage('sonarqube analysis') {
agent none
steps {
container('base') {
sh 'rpm -e `rpm -qa |grep java-1.8.0-openjdk` --nodeps && yum install -y java-11-openjdk java-11-openjdk-devel && java -version'
sh '''wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz && \\
tar -zxvf apache-maven-3.8.4-bin.tar.gz -C /opt/ && \\
mv /opt/apache-maven-3.8.4* /opt/mvn && \\
/opt/mvn/bin/mvn -v'''
withCredentials([string(credentialsId : 'sonar-demo' ,variable : 'SONAR_TOKEN' ,)]) {
withSonarQubeEnv('sonar') {
sh '/opt/mvn/bin/mvn clean install sonar:sonar -Dsonar.login=$SONAR_TOKEN'
}
}
}
}
}
}
environment {
DOCKER_CREDENTIAL_ID = 'aliyun-id'
GITEE_CREDENTIAL_ID = 'gitee-id'
KUBECONFIG_CREDENTIAL_ID = 'k8s-demo'
REGISTRY = 'registry.cn-hangzhou.aliyuncs.com'
DOCKERHUB_NAMESPACE = 'k8sops2021'
GITHUB_ACCOUNT = 'leifengyang'
APP_NAME = 'devops-java-sample'
SONAR_CREDENTIAL_ID = 'sonarqube'
}
parameters {
string(name: 'TAG_NAME', defaultValue: '', description: '')
}
}
转载请标明出处【kubesphere3.2.1组件devops流水线使用Sonarqube代码质量分析】。
《www.micoder.cc》
虚拟化云计算,系统运维,安全技术服务.
Tags: | [阅读全文...] |
最新评论