zoukankan      html  css  js  c++  java
  • Jenkins高级应用

       0.1 安装 Docker-ce

    cd /etc/yum.repos.d/
    wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    yum install docker-ce -y
    

     0.2 docker 镜像加速 (可选阿里云镜像加速服务)

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://registry.docker-cn.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

      03. 安装 docker-compose

    sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
    # 验证
    docker-compose --version
    docker-compose version 1.24.0, build 0aa59064
    

      0.4 下载所需 docker 镜像

    1. 下载 gitlab-ce
    docker pull gitlab/gitlab-ce:latest
    2 下载jenkins
    docker pull jenkins:latest
    3. 下载 sonarqube
    docker pull sonarqube:latest
    

      05. 编写 docker-compose.yml文件

    [root@jenkins-client ~]# mkdir /data/{jenkins,gitlab} -p
    [root@jenkins-client ~]# tree /data
    /data
    ├── gitlab
    └── jenkins
    
    2 directories, 0 files
    [root@jenkins-client ~]# cat devops/docker-compose.yml 
    version: '2'
    
    services:
      gitlab:
          image: gitlab/gitlab-ce:latest
          ports:
              - "443:443"
              - "80:80"
              - "22:22"
          networks:
              - devops
          volumes:
              - /root/data/gitlab/config:/etc/gitlab
              - /root/data/gitlab/logs:/var/log/gitlab
              - /root/data/gitlab/data:/var/opt/gitlab
    
      jenkins:
          image: jenkins:latest
          ports:
              - "8080:8080"
              - "50000:50000"
          networks:
              - devops
          volumes:
              - /root/data/jenkins:/var/jenkins_home
              - /var/run/docker.sock:/var/run/docker.sock
    
      sonarqube:
          image: sonarqube:workshop
          ports:
              - "9000:9000"
              - "9092:9092"
          networks:
              - devops
    
    networks:
      devops:
        driver: bridge
    

      启动方式 : [root@jenkins-client devops]# docker-compose up -d jenkins

    Jenkins 是什么?

    • 基于JAVA的开源的自动化系统平台
    • 加速自动化CI,CD任务及流水线
    • 所有类型的任务:构建,测试,部署等
    • 丰富的插件生态系统支持功能扩展
    • 1400+ 插件
    • SCM, 测试, 通知, 报告, Artifact, 触发, 外部集成等
    • 基于Web的管理和使用界面
    • 源于Hudson

    Jenkins 系统架构图

    Jenkins 分布式架构图

    常用应用场景

    • 创建一个项目, 手动可以构建, 完成一些简单任务, 比如下载代码后进行编译
    • 编译失败邮件通知客户
    • 用户可以选择不同参数进行构建
    • 代码改动后自动触发某个构建,或者定时触发某个项目构建
    • 一个项目构建完成后可以自动调用另一个项目的构建,完成一连串的任务
    • 并发构建

    主要Job类型

    • Freestyle project

            自由风格项目,Jenkins最主要的项目类型

    • Maven Project

            Maven项目专用,类似Freestyle,更简单

    •  Multi-configuration project

            多配置项目,适合需要大量不同配置(环境,平台等)构建

    •  Pipeline        流水线项目,适合使用pipeline(workflow)插件功能构建流水线任务,或者使用Freestyle project 不容易实现的复杂任务

    •  Multibranch Pipeline

            多分支流水线项目,根据SCM仓库中的分支创建多个Pipeline项目

    Freestyle 项目

    • General
      • 项目基本配置
      • 项目名字,描述,参数,禁用项目,并发构建,限制构建默认node等等
    • Source code Management
      • 代码库信息,支持Git,Subversion等
    • Build Triggers
      •  构建触发方式
      •  周期性构建,Poll SCM,远程脚本触发构建,其他项目构建结束后触发等
    • Build Environment
      • 构建环境相关设置
      • 构建前删除workspace,向Console 输出添加时间戳,设置构建名称,插入环境变量等
    • Build
      • 项目构建任务
      • 添加1个或者多个构建步骤
    • Post-build Actions
      • 构建后行为
      • Artifact 归档,邮件通知,发布单元测试报告,触发下游项目等等

    实战演练:新建一个freestyle任务

      新建任务 -->> 输入一个任务名称 -->> 构建一个自由风格的软件项目 --->> 确定 -->> 构建 -->> 执行Shell

    构建执行并查看日志

    服务器端每个Job的存储路径

    [root@jenkins-server jobs]# pwd
    /var/lib/jenkins/jobs
    [root@jenkins-server jobs]# ls
    my-freestyle-job
    

      每一次的构建配置

    [root@jenkins-server builds]# pwd
    /var/lib/jenkins/jobs/my-freestyle-job/builds
    [root@jenkins-server builds]# ls
    1                lastStableBuild      lastUnstableBuild      legacyIds
    lastFailedBuild  lastSuccessfulBuild  lastUnsuccessfulBuild
    

    限制jenkins 工作在哪个节点

    添加源码管理

    工作区 可以下载构建之后的代码,清空等操作

     自动化构建和测试

      自定义构建时间

        定时构建 每天的那个时间段指定执行 H 代表jenkins 自己分配时间

      轮训构建SCM

        代码如果没有发生变化不进行构建

    • 检查maven环境
    • 构建命令:mvn clean compile

      参数化构建

    • 归档构建产物

     触发下游Project构建

      Jenkins Core 功能

        “Build other projects”under“Post build actions”

        3种触发条件

    插件管理

    系统配置- 管理插件

    • 路径:系统管理- 管理插件
    • 部分插件安装无需重启Jenkins
    • 删除插件并不会立即生效
    • 最佳实践:仅选择必要的插件,否则会影响Jenkins加载速度

    管理节点

    • 路径: 系统管理- 管理节点
    • 节点(Node/Slave)的连接方式

     添加节点

     

    秘钥及 java 路径设置

    启动节点

     Sonarqube代码质量平台

     

    Sonarqube和Jenkins集成

  • 相关阅读:
    软件课设Day18
    软件课设Day17
    软件课设Day16
    2019/09/12最新进展
    2019/09/11最新进展
    2019/09/10最新进展
    2019/09/09最新进展
    2019/09/08最新进展
    2019/09/07最新进展
    2019/09/06最新进展
  • 原文地址:https://www.cnblogs.com/yanshicheng/p/10725721.html
Copyright © 2011-2022 走看看