记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。

kubesphere3.2.1组件devops流水线使用Sonarqube代码质量分析

一,环境说明。

1,主机配置。

IP系统主机名称kubernetes信息
192.168.1.23Centos7.9centos7-23master+worker节点
192.168.1.31Centos7.9centos7-31NFS存储+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。

http://192.168.1.23:30925

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》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论