zoukankan      html  css  js  c++  java
  • Jenkins持续集成 docker、gitlab、sonar

      Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。Jenkins是一种软件允许持续集成。

    • docker搭建gitlab

    安装 postgresql container

    sudo docker run --name gitlab-postgresql -d 
    --env 'DB_NAME=gitlabhq_production' 
    --env 'DB_USER=gitlab' --env 'DB_PASS=password' 
    --volume /srv/docker/gitlab/postgresql:/var/lib/postgresql 
    sameersbn/postgresql:9.4-12
    • 安装 redis container
    sudo docker run --name gitlab-redis -d --volume /srv/docker/gitlab/redis:/var/lib/redis sameersbn/redis:latest
    • 安装Jenkins
    sudo docker run -d -u root --name myjenkins -p 8084:8080 -p 50000:50000 -v $PWD/jenkins:/var/jenkins_home -v $PWD/jenkins/docker.sock:/var/run/docker.sock jenkins
    • 安装Publish Over SSH插件
    首页 -> 点击系统管理 -> 管理插件 ->可选插件 -> 过滤:ssh -> 选择Publish Over SSH插件,点击直接安装。
    设置服务器SSH信息
    首先在容器中生成rsa密钥:
    # 从宿主机客户进入容器,目前容器名myjenkins,也可通过docker ps 查看
    $ docker exec -it myjenkins /bin/bash
    # 进入容器后建立.ssh目录,创建密钥文件私钥id_rsa,公钥id_rsa.pub
    ~ mkdir ~/.ssh && cd ~/.ssh
    ~ ssh-keygen -t rsa
    # 一直回车即可
    • 启动gitlab-runner
    docker run -d --name gitlab-runner --restart always -v $PWD/gitlab-runner/config:/etc/gitlab-runner -v $PWD/gitlab-runner/docker.sock:/var/run/docker.sock gitlab/gitlab-runner
    • 安装sonar

      1、Sonar介绍
      Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。

      2、配置数据库
      Apache Derby 是Sonar自带并且默认安装使用的数据库,此外Sonar对如下数据库提供支持:MySQL 5.x, Oracle 10g XE, Postgresql, MS SqlServer等,本文以mysql为例介绍如何配置数据库:

      1)创建数据库

    CREATE DATABASE sonar ACTER SET utf8 COLLATE utf8_general_ci;
    CREATE USER 'sonar' IDENTIFIED BY 'sonar';
    GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
    GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
    FLUSH PRIVILEGES;

      2)编辑${SONAR_HOME}/conf/sonar.properties配置数据库:

    sonar.jdbc.username:                       sonar
    sonar.jdbc.password:                       sonar
    sonar.jdbc.url:                            jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
    # Optional properties
    sonar.jdbc.driverClassName:                com.mysql.jdbc.Driver

      3)配置DB驱动包

      如果使用Oracle数据库,必须手动复制驱动类到${SONAR_HOME}/extensions/jdbc-driver/oracle/目录下。其它支持的数据库默认提供了驱动。

      3、安装、配置Sonar

      创建运行sonar的CentOS账户sonar,并设置账户密码:
      # useradd sonar
      # passwd sonar
      Sonar默认集成了jetty容器,可以直接启动提供服务,也可以通过脚本构建为war包,部署在tomcat容器中。

    1)直接启动
    编辑.bash_profile,添加环境变量SONAR_HOME
    $ vi $HOME/.bash_profile
    修改成如下内容:
      PATH=$PATH:$HOME/bin
      SONAR_HOME=$HOME/sonar
      export PATH SONAR_HOME
    $source $HOME/.bash_profile
    运行如下命令启动sonar
    $ {SONAR_HOME}/bin/linux-x86-64/sonar.sh start
    Sonar默认的端口是”9000”、默认的上下文路径是”/”、默认的网络接口是”0.0.0.0”,默认的管理员帐号和密码为:admin/admin,这些参数都可以在配置文件中修改:
    $ vi ${SONAR_HOME}/conf/sonar.properties

      4、配置为自启动服务

      创建自启动脚本文件/etc/init.d/sonar

      # vi /etc/init.d/sonar    ##添加如下内容

    #!/bin/sh
    #
    # rc file for SonarQube
    #
    # chkconfig: 345 96 10
    # description: SonarQube system (www.sonarsource.org)
    #
    ### BEGIN INIT INFO
    # Provides: sonar
    # Required-Start: $network
    # Required-Stop: $network
    # Default-Start: 3 4 5
    # Default-Stop: 0 1 2 6
    # Short-Description: SonarQube system (www.sonarsource.org)
    # Description: SonarQube system (www.sonarsource.org)
    ### END INIT INFO
    /usr/bin/sonar $*

    添加启动服务
    # ln -s $SONAR_HOME/bin/linux-x86-64/sonar.sh /usr/bin/sonar
    # chmod 755 /etc/init.d/sonar
    # chkconfig --add sonar

    5、配置插件
    a)插件介绍
    Sonar支持多种插件,将下载后的插件上传到${SONAR_HOME}extensionsplugins目录下,重新启动sonar。

      sonar默认集成了Java Ecosystem插件,该插件是一组插件的合集:

    Java [sonar-java-plugin]:java源代码解析,计算指标等
    Squid [sonar-squid-java-plugin]:检查违反Sonar定义规则的代码
    Checkstyle [sonar-checkstyle-plugin]:使用CheckStyle检查违反统一代码编写风格的代码
    FindBugs [sonar-findbugs-plugin]:使用FindBugs检查违反规则的缺陷代码
    PMD [sonar-pmd-plugin]:使用pmd检查违反规则的代码
    Surefire [sonar-surefire-plugin]:使用Surefire执行单元测试
    Cobertura [sonar-cobertura-plugin]:使用Cobertura获取代码覆盖率
    JaCoCo [sonar-jacoco-plugin]:使用JaCOCO获取代码覆盖率

      其他常用的插件
      JavaScript代码检查,python代码检查,Web页面检查(HTML、JSP、JSF、Ruby、PHP等),xml文件检查,scm源码库统计分析,文件度量,中文语言包,时间表显示度量结果,度量结果演进图

  • 相关阅读:
    让Web站点崩溃最常见的七大原因
    git常用命令
    VMware 虚拟网卡介绍和使用说明
    jQuery 发送 ajax 跨域请求,java 后端配置允许跨域
    svn 提交报错,提示:locked,需要 cleanup
    设置mysql允许外部连接访问
    Splunk和ElasticSearch深度对比解析(转)
    elastalert新增自定义警告推送
    nodejs(log4js)服务中应用splunk进行Log存储、搜索、分析、监控、警告
    elasticsearch License 到期后更新步骤
  • 原文地址:https://www.cnblogs.com/zengming/p/13126309.html
Copyright © 2011-2022 走看看