• Docker学习10-sonarqube+jenkins持续集成代码审计(上)


    前言

    1.SonarQube简介
           SonarQube是一种自动代码审查工具,用于检测代码中的错误,漏洞和代码味道。它可以与您现有的工作流程集成,以实现跨项目分支和提取请求的连续代码检查,开源平台,用于管理源代码的质量。同时  SonarQube 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用  SonarQube。此外, SonarQube 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。
       
    2.SonarQube的使用范围   
            通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测,针对不同的编程语言其所提供的分析方式也有所不同: 对于所有支持的编程语言,SonarQube 都提供源了代码的静态分析功能; 对于某些特定的编程语言,SonarQube 提供了对编译后代码的静态分析功能。
     
    3.SonarQube工作原理
            SonarQube 并不是简单地将各种质量检测工具的结果(例如 FindBugs,PMD 等)直接展现给客户,而是通过不同的插件算法来对这些结果进行再加工,最终以量化的方式来衡量代码质量,从而方便地对不同规模和种类的工程进行相应的代码质量管理。 SonarQube 在进行代码质量管理时,会从图 1 所示的七个纬度来分析项目的质量。

    必备环境:

    1、docker

    • docker-compose
    • sonarqube

    2、jenkins

    3、git源码地址

    一、docker环境安装

    1、docker 安装

    linux下直接使用yum安装,或者其它安装方法:

    yum  -y install  docker-ce

    2、docker-compose 安装

    第一种:pip 安装

    1、首先检查 pip 环境:pip -V

    [root@iZbp19lugf22zbsubsf1y6Z ~]# pip -V
    pip 19.1.1 from /usr/lib/python2.7/site-packages/pip (python 2.7)

    2、如未显示 pip 版本号,自己解决。接下来输入:pip install docker-compose

    复制代码
    [root@iZbp19lugf22zbsubsf1y6Z easymock]# pip install docker-compose
    Looking in indexes: http://mirrors.cloud.aliyuncs.com/pypi/simple/
    Requirement already satisfied: docker-compose in /root/python36/lib/python3.6/site-packages (1.25.1)
    Requirement already satisfied: cached-property<2,>=1.2.0 in /root/python36/lib/python3.6/site-packages (from docker-compose) (1.5.1)
    Requirement already satisfied: docopt<1,>=0.6.1 in /root/python36/lib/python3.6/site-packages (from docker-compose) (0.6.2)
    Collecting requests<3,>=2.20.0
      Downloading http://mirrors.cloud.aliyuncs.com/pypi/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl (57kB)
         |????????????????????????????????| 61kB 23.4MB/s ...
    复制代码

    3、验证版本输入:docker-compose version

    [root@iZbp19lugf22zbsubsf1y6Z easymock]# docker-compose version
    docker-compose version 1.25.1, build a82fef0
    docker-py version: 4.1.0
    CPython version: 3.6.8
    OpenSSL version: OpenSSL 1.0.2k-fips  26 Jan 2017

    如提示没有找到此命令,则需要添加软连接:(注:是你自己的安装路径,别复制我的 )

    ls -n /root/python3/bin/docker-compose /usr/bin/

    第二种:下载安装 docker-compose

    1、运行命令,下载 Docker Compose:

    curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

    2、加权限:

    chmod +x /usr/local/bin/docker-compose

    3、添加软连接:

    ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

    4、验证版本输入:docker-compose version

    [root@iZbp19lugf22zbsubsf1y6Z easymock]# docker-compose version
    docker-compose version 1.25.1, build a82fef0
    docker-py version: 4.1.0
    CPython version: 3.6.8
    OpenSSL version: OpenSSL 1.0.2k-fips  26 Jan 2017

    3、sonarqube 安装

    1、系统配置,避免启动问题

    # 系统配置,避免启动问题
    echo "vm.max_map_count=262144" >> /etc/sysctl.conf

    查看命令:sysctl -p

    2、创建挂载目录

    # 创建目录
    mkdir -p ~/sonarqube && cd ~/sonarqube
    
    # 创建所有的sonarqube映射文件
    mkdir -p ~/sonarqube/postgres && 
    mkdir -p ~/sonarqube/data && 
    mkdir -p ~/sonarqube/extensions && 
    mkdir -p ~/sonarqube/logs && 
    mkdir -p ~/sonarqube/conf
    
    # 创建数据库挂载
    mkdir -p ~/sonarqube/postgresql &&
    mkdir -p ~/sonarqube/datasql
    
    # 目录设置为 777 权限,避免权限问题
    chmod 777 ./*

    3、创建 docker-compose.yml 文件

     在sonarqube目录下,将以下内如复制到yml文件:vi docker-compose.yml

    version: '3'
    services: 
      postgres:    
        image: postgres
        restart: always
        container_name: sonarqube_postgres
        ports:
          - 5432:5432
        volumes:
          - ~/sonarqube/postgresql/:/var/lib/postgresql
          - ~/sonarqube/datasql/:/var/lib/postgresql/data
        environment:
          TZ: Asia/Shanghai    
          POSTGRES_USER: sonar   
          POSTGRES_PASSWORD: sonar
          POSTGRES_DB: sonar
        networks: 
          - sonar-network
      sonar:
        image: sonarqube
        restart: always 
        container_name: sonarqube
        depends_on:
          - postgres
        volumes:
          - ~/sonarqube/extensions:/opt/sonarqube/extensions
          - ~/sonarqube/logs:/opt/sonarqube/logs
          - ~/sonarqube/data:/opt/sonarqube/data
          - ~/sonarqube/conf:/opt/sonarqube/conf
        ports:
          - 9000:9000
        environment:
          SONARQUBE_JDBC_USERNAME: sonar
          SONARQUBE_JDBC_PASSWORD: sonar
          SONARQUBE_JDBC_URL: jdbc:postgresql://postgres:5432/sonar
        networks: 
          - sonar-network
    networks:
      sonar-network:
        driver: bridge

    4、docker-compose 用法

    ①启动:docker-compose up -d

    ②停止:docker-compose down

    [root@JenkinsGod sonarqube]# docker-compose up -d
    Removing network sonarqube_sonar-network
    Creating network "sonarqube_sonar-network" with driver "bridge"
    Creating sonarqube_postgres ... done
    Creating sonarqube          ... done

    5、浏览器访问:ip+端口,如:192.168.11.111:9000

    管理员账号密码都是:admin

    6、sonarqube插件安装

    方法一(不推荐,好慢):在sonarqube web 上的 Marketplace 安装。

     方法二:下载jar包,丢到插件目录下

    这里有支持一部分语言,我们还可以汉化sonarqube,插件我直接分享在:

    链接:https://pan.baidu.com/s/1wIMNDYE6JHxiKFeCycCkdQ 
    提取码:gsxl 
    复制这段内容后打开百度网盘手机App,操作更方便哦

    官方jar包下载地址:https://docs.sonarqube.org/latest/analysis/languages/java/

    希望能有你所需要的。

     7、ftp将jar上传至服务器

    上传至该目录:/extensions/downloads

    如我的:

     

     8、重启:

    ①停止:docker-compose down

    ②重启:docker-compose up -d

    [root@JenkinsGod sonarqube]# docker-compose down
    Stopping sonarqube          ... done
    Stopping sonarqube_postgres ... done
    Removing sonarqube          ... done
    Removing sonarqube_postgres ... done
    Removing network sonarqube_sonar-network
    [root@JenkinsGod sonarqube]# docker-compose up -d
    
    Creating network "sonarqube_sonar-network" with driver "bridge"
    Creating sonarqube_postgres ... done
    Creating sonarqube          ... done
    [root@JenkinsGod sonarqube]# 
    [root@JenkinsGod sonarqube]# 

    二、jenkins 安装与插件安装

    1、jenkins 安装

    详细可以参考,https://www.cnblogs.com/gsxl/p/12129333.html

    2、SonarQube Scanner 插件安装

    路径:/pluginManager/

    安装后重启jenkins

     

    欢迎来大家QQ交流群一起学习:482713805

  • 相关阅读:
    Python List comprehension列表推导式
    Git
    Python 默认参数 关键词参数 位置参数
    Blog List
    【论文笔记】DeepOrigin: End-to-End Deep Learning for Detection of New Malware Families
    【论文笔记】Malware Detection with Deep Neural Network Using Process Behavior
    Scala入门 【1】
    RocketMQ与Kafka对比(18项差异)
    Kafka简介
    Spark存储管理(读书笔记)
  • 原文地址:https://www.cnblogs.com/gsxl/p/13757378.html
Copyright © 2020-2023  润新知