• Jenkins+Sonar质量门禁【部署篇】


    Jenkins+Sonar质量门禁【部署篇】

      老实说,我很少写部署的东西,但是不写,下一篇的实验,可能大家会有点懵逼。长话短说好了~~~

      首先搞这个测试源于11月中旬,领导叫了解学习的一篇文章:超详细,自动化测试接入Jenkins+Sonar质量门禁实践【https://blog.csdn.net/jiangjunsss/article/details/119918932】。(老实说,也并不特别详细,因为有些关键点竟然没有交代,害我翻了很多歪果仁的文章才解决)。

      当时新服务器没买,旧服务器资源又不够,于是决定在docker上拉个jenkins镜像做实验,随时销毁。

    部署完之后,其实就是跑三个docker服务:jenkins、sonarqube和mysql。

    一、jenkins部署 

    1、拉取镜像:docker pull jenkinsci/blueocean:1.24.8

    (jdk在镜像里面自带了,不用额外装)

    2、创建挂载目录

    mkdir -p /home/data/jenkins
    chmod 777 -R /home/data/jenkins/

    3、启动(注意,这条命令后面会逐渐优化

    docker run -dit --name jenkins -u root -p 8089:8080 -p 50000:50000 \
    -v /home/data/jenkins:/var/jenkins_home \
    -v /var/run/docker.sock:/var/run/docker.sock \
    --restart=always --privileged=true \
    jenkinsci/blueocean:1.24.8

    4、配置镜像加速地址

    cat /home/data/jenkins/hudson.model.UpdateCenter.xml
    url改成:
     <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>

    5、各种插件安装(不再累赘)

    6、配置maven(实际上,就是下载解压,然后映射到jenkins容器内,因为要用来maven编译)

    参考:https://blog.csdn.net/piaoniu_1985/article/details/107907503

    7、web 端 Jenkins 配置 maven 地址
    jenkins界面—— 全局工具配置,找到MAVEN_HOME,写在jenkins容器内的maven地址。

    8、重启 jenkins

    docker run -dit --name jenkins -u root -p 8089:8080 -p 50000:50000 \
    -v /home/data/jenkins:/var/jenkins_home \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v /opt/maven:/usr/local/maven \
    -v /opt/maven_repository:/usr/local/maven_repository \
    --restart=always --privileged=true \
    jenkinsci/blueocean:1.24.8

    二、sonar部署(mysql+sonar)

    参考:https://www.cnblogs.com/shenh/p/13428029.html

    1、部署mysql

    特意写一下mysql启动命令,因为直接复制文章里的报错:

    docker run --name mysql -d -p 3306:3306 --net sonarqube-tier -v /usr/mysql/conf:/etc/my.cnf.d -v /usr/mysql/logs:/logs -v /usr/mysql/data:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=123456 \
    --restart always \
    --privileged=true \
    --network-alias mysql \
    mysql:5.7

    注意,启动mysql容器指定了docker 网络 sonarqube-tier,后面的sonar启动也需要

    2、新建sonar库

    mysql -uroot -p'密码'
    
    MySQL [(none)]> grant all privileges on sonar.* to admin@'%'  IDENTIFIED BY 'admin';
    
    MySQL [(none)]> grant all privileges on sonar.* to admin@'localhost'  IDENTIFIED BY 'admin'; 

     3、sonar启动

    docker run -d --name sonar -p 9090:9000  -e ALLOW_EMPTY_PASSWORD=yes  -e SONARQUBE_DATABASE_USER=sonar  -e SONARQUBE_DATABASE_NAME=sonar  -e SONARQUBE_DATABASE_PASSWORD=sonar  -e SONARQUBE_JDBC_URL="jdbc:mysql://安装sonar服务端的服务器ip:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" --net sonarqube-tier --privileged=true -v /data/sonarqube/logs:/opt/sonarqube/logs -v /data/sonarqube/conf:/opt/sonarqube/conf -v /data/sonarqube/data:/opt/sonarqube/data -v /data/sonarqube/extensions:/opt/sonarqube/extensions sonarqube:7.4-community

    另外配置一下sonar中文汉化包,放到宿主机这个目录:/data/sonarqube/extensions/plugins

      部署完之后,假设服务器ip为:192.168.2.12,浏览器理应能访问

    1、jenkins地址:  192.168.2.12:8089

    2、sonar地址:192.168.2.12:9090

  • 相关阅读:
    mvc中HttpPost理解
    javascrip格式
    asp.net ToString()格式汇总
    Datatable根据多行排序
    sql server 判断是否存在数据库,表,列,视图
    IsPostBack是什么意思,如何运用?
    JS apply()的使用详解
    C++设计模式-Command命令模式
    C++ 继承和包含的区别?
    命令模式
  • 原文地址:https://www.cnblogs.com/windysai/p/15738168.html
Copyright © 2020-2023  润新知