[图片] DevOps 开发工程师?DevOps 运维工程师?DevOps 自动化持续交付工程师?DevOps 主管? 安装说明 Gitlab 安装,推荐清华大学镜像安装 https://mirrors.tuna.tsinghua.edu.cn/help/gitlab-ce/ Gitlab 官方安装说明 https:/ ..

GitLab、Jenkins 、SonarQube、Nexus 搭建 CI/CD、代码质量检查

本贴最后更新于 281 天前,其中的信息可能已经时移世异

devOps0001.jpg

🐞DevOps 开发工程师?🌞DevOps 运维工程师?🚀DevOps 自动化持续交付工程师?🗿DevOps 主管?

安装说明

我在 Ubuntu 18.04.2 LTS 下安装以上软件进行演示

GitLab 展示

我本地安装版本为 11.5.1 ,配置文件地址 /etc/gitlab/gitlab.rb
devOps0002.jpg

开源项目 Jeesite

jeesite 作为演示项目,推送到自己搭建的 GitLab 私人仓储中 Jeesite 项目地址: https://github.com/thinkgem/jeesite.git

git remote remove origin # 删掉原来git源
git remote add origin 'http://192.168.0.222/root/jeesite.git' # 添加新的源
git push --set-upstream origin master # 推送

devOps0003.jpg

GitLab Auto DevOps

本地安装的这个版本已经自动开启了 CI/CD 功能,但是需要安装 Runner 服务器,不然 Pipelines 处于 stuck 状态
GitLab Runner 安装推荐 清华大学镜像Runner 常用命令

gitlab-runner register
gitlab-runner status
gitlab-runner list

CI/CD 详细信息科查看 GitLab 官网 continuous-integration
devOps0004.jpg

Jenkins 展示

启动错误解决

  1. journalctl -xe

     Job for jenkins.service failed because the control process exited with error code.
     See "systemctl status jenkins.service" and "journalctl -xe" for details.
     解决
     gedit /etc/init.d/jenkins 手动配置JAVA_HOME
     export JAVA_HOME=/usr/local/jdk1.8.0_172
     PATH=/bin:/usr/bin:/sbin:/usr/sbin:$JAVA_HOME/bin
    
  2. systemctl daemon-reload

    Warning: The unit file, source configuration file or drop-ins of jenkins.service changed on disk. Run 'systemctl daemon-reload' to reload units.
    解决
    systemctl daemon-reload    
    

启动成功后,浏览器访问

默认端口 8080,我本地改成了 8081,位置 /etc/default/jenkins
启动:sudo service jenkins start
devOps0005.jpg
成功登陆后界面
devOps0006.jpg

SonarQube 展示

错误解决,配置 MySQL,访问

插件安装

测试 Sonar 的基本使用

IDEA 集成

  1. 安装 SonarLint 插件,成功后重启 IDEA
    devOps0014.jpg

  2. 配置 SonarQube 服务
    devOps0015.jpg

  3. SonarQube 生成令牌
    devOps0016.jpg

  4. 写入 IDEA
    devOps0017.jpg

  5. 配置 SonarLint Project Settings
    devOps0018.jpg

  6. IDEA 中会出现 SonarLint 扩展栏
    devOps0019.jpg

Jenkins 插件安装、基础配置

插件安装

任务配置,构建

devOps0022.jpg

devOps0023.jpg

devOps0024.jpg

GitLab Webhooks

Jenkins 配置

  1. 获取 Gitlab Access Token
    devOps0028.jpg
  2. Jenkins-系统管理-系统配置
    devOps0029.jpg
  3. jeesite-配置-Build Triggers
    devOps0030.jpg

GitLab 配置

Jenkins SonarQube

Jenkins 配置

SonarQube 面板

Nexus 搭建使用

Nexus 安装启动

修改 Jeesite POM 文件

<!--项目分发信息,在执行mvn deploy后表示要发布的位置 -->
<distributionManagement>
   <repository>
      <id>releases</id>
      <name>Nexus Release Repository</name>
      <url>http://192.168.0.222:8087/nexus/content/repositories/releases</url>
      <uniqueVersion>true</uniqueVersion>
   </repository>
   <snapshotRepository>
      <id>snapshots</id>
      <name>Nexus Snapshot Repository</name>
      <url>http://192.168.0.222:8087/nexus/content/repositories/snapshots</url>
      </snapshotRepository>
</distributionManagement>
<!-- 私服仓储配置 -->
<repositories>
   <repository>
      <id>nexus</id>
      <url>http://192.168.0.222:8087/nexus/content/groups/public/</url>
      <releases>
         <enabled>true</enabled>
      </releases>
     <snapshots>
         <enabled>true</enabled>
      </snapshots>
   </repository>
</repositories>
<!-- Maven插件仓储配置 -->
<pluginRepositories>
   <pluginRepository>
      <id>framework</id>
      <url>http://192.168.0.222:8087/nexus/content/groups/public/</url>
      <releases>
         <enabled>true</enabled>
      </releases>
      <snapshots>
         <enabled>true</enabled>
      </snapshots>
   </pluginRepository>
</pluginRepositories>

完.....

  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    32 引用 • 41 回帖
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    33 引用 • 37 回帖
  • SonarQube
    3 引用 • 11 回帖
  • Nexus
    10 引用 • 20 回帖
6 回帖
请输入回帖内容...
  • LYHFUU
    展开

    👍 carry on

    该回帖因偏离主题而被折叠
    1 操作
    LYHFUU 在 2019-10-31 20:31:43 折叠了该回帖
  • bambi2016

    好东西,学习了

  • LYHFUU

    这篇 DevOps 技术体系文章算是结束了😇 ,但对与 DevOps 研发概念,还有很多东西需要学习、实践,路漫漫其修远兮......👻

    2 操作
    LYHFUU 在 2019-10-31 20:31:29 折叠了该回帖
    88250 在 2019-10-31 23:37:26 取消折叠了该回帖
  • 88250

    我非常佩服图文并茂一步一步写心得教程的人,这种工匠精神非常赞!

    1 回复
  • LYHFUU

    😄 还有许多地方需要完善

  • ericshen90

    如果全部换成 docker 部署,流程会简化很多,为楼主 👍

请输入回帖内容 ...