jenkins持续化集成(代码片段)

jinchengll jinchengll     2023-04-21     479

关键词:

内容目录:

  1. jenkins 概述与环境配置

  2. 基于jenkins 实现可持续化集成

  3. jenkins pipeline 核心应用

一、jenkins 概述与环境配置

  1. 关于可持续化集成 (CI)

  2. jenkins 概述

  3. 下载安装jenkins

  4. 基础环境配置与常用插件下载

1、关于可持续化集成

相信大家都知道jenkins是用来做可持续集成的? 但部问题是很多人并不明白什么叫可持续化集成。讲概念之前我们先来举一个场景:

一个团队正着手开发一个项目,在需求评审之后由小组长把项目拆成了若干个模块,分给不同的小伙伴去实现。2个星期以后各自模块的功能都实现了,大家都很开心。这时该合在一起提测了吧。这一合小组长傻眼了,功能没一个能用的,要么公共类冲突了,要么配置冲突....

经过上次的教训,小组长变聪明了,在也不等功能开发之后在合并提测了,而是每天集成提测,如果发现冲突当天就要解决。

持续集成即 Continuous integration(CI) 是一种软件开发实践,即团队开发成员经常集成他们的工作,每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误,让团队能够更高效的开发软件。

技术图片

持续集成要点:

  • 统一的代码库(git)

  • 统一的依赖包管理(nexus)

  • 测试自动化
  • 构建全自动化(maven)
  • 部署自动化
  • 可追踪的集成记录

2、jenkins概述

jenkins 就是为了满足上述持续集成的要点而设计的一款工具,其主体框架采用JAVA开发,实质内部功能都是由各种插件实现,极大提高了系统的扩展性。其不仅可以满足JAVA系统的集成,也可以实现PHP等语言的集成发布。通过其pipeline 插件,用户可以随自己需要定制集成流程。

3、下载安装jenkins

下载:jenkins 支持Docker、yum、msi 等安装,在这里推荐大家直接选择下载他对应的WAR包进行安装。https://jenkins.io/download/

启动:下载完成之后直接可通过 jar -jar 命令启动

java -jar jenkins.war --httpPort=8080

也可以将其放至到servlet容器(tomcatjettyjboss)中直接启动,无需过多的配置,一切插件化这是jenkins 比较优秀的设计。

配置:下载完成之后进入启动页(http://127.0.0.1:8080/) 会有一个 验证过程,验证码存储在 $user_home.jenkinssecretsinitialAdminPassword 中,接着就是进入安装插件页,选择默认即可,这个过程稍长。

4、基础环境配置与常用插件下载

在集成的时候,jenkins 用到了 Maven 、Git 所以服务器中必须提前安装好这些环境。

插件下载:

更换源 ->系统管理->管理插件->高级 ->升级站点

把:http://updates.jenkins-ci.org/update-center.json

换成:http://mirror.esuni.jp/jenkins/updates/update-center.json

镜像源查询:http://mirrors.jenkins-ci.org/status.html

基本插件列表:

插件名称 插件描述
Maven Integration maven 管理插件
Deploy to container 容器部署插件
Pipeline 管道集成插件
Email Extension 邮件通知插件
SSH 用于ssh 通信

二、基于jenkins 实现可持续化集成

  1. 持续化集成完成的目标
  2. 持续化集成配置
  3. 集成实现原理

1、持续化集成完成的目标

需要到达的目标如下:

  1. 自动基于分支构建项目

  2. 构建好的项目自动部署至Tomcat容器

  3. 构建好的项目自动上传至Nexus 私服存档

  4. 保存构建历史记录,并可以下载历史记录

2、持续化即成配置

  1. 新建maven job

    技术图片

  2. 配置checkout 源码

    技术图片

  3. 编写 maven构建命令

    技术图片

  4. 自动部署至Tomcat配置

    添加构建后操作:Deploy war/ear to container 项目

    技术图片

    自动部署的前提条件:

    1. 需要下载 Deploy to container 插件

    2. 设置Tomcat manager 用户和密码,以下配置加入至 Tomcat conf/tomcat-users.xml 中

    3. tomcat webapp 中必须保留 manager 项目

      <role rolename="admin-gui"/>
      
      <role rolename="manager-gui"/>
      
      <role rolename="manager-script"/>
      
      <user username="manager" password="manager" roles="manager-gui,manager-script"/>
      
      <user username="admin" password="admin" roles="admin-gui,manager-gui"/>
    4. 存档配置

      构建后操作添加 Deploy war/ear to a container 项目

      技术图片

      配置setting.xml 用于获取上传至nexus 的权限

      vim ~/.m2/settings.xml

      # 添加一个 server  id 与 存档配置当中的repository id 相对应。
      ?<server>
      ? ? ? ? ? <id>nexusReleases</id>
      ? ? ? ? ? <username>deployment</username>
      ? ? ? ? ? <password>111111</password>
      </server>

    3、实现集成原理

    技术图片

三、jenkins pipeline 核心应用

  1. pipeline 概要

  2. pipeline 基础语法

  3. pipeline Demo演示

1、pipeline 概要

前面我们演示的 使用maven 来进行自动化构建,其流程分别是:构建环境准备==》源码下载 ==》构建 ==》存档 ==》部署。这是一种固化的构建流程,如果你们的需求是多个项目需要进行依赖构建这种复杂的构建场景 时该怎么办?jenkins pipeline 可以做到这一点。

Jenkins从根本上讲是一种支持多种自动化模式的自动化引擎。Pipeline在Jenkins上添加了一套强大的自动化工具,支持从简单的连续集成到全面的连续输送Pipeline的用例。用户可以基于他实现更为复杂的建模场景。

2、pipeline基础语法

以下就是一个非常简单的 pipeline 脚本:

pipeline 
    agent any 
    stages 
        stage('Build')  
            steps  
                sh 'make' 
            
        
        stage('Test')
            steps 
                sh 'make check'
                junit 'reports/**/*.xml' 
            
        
        stage('Deploy') 
            steps 
                sh 'make publish'
            
        
    

agent 表示Jenkins应该为Pipeline的这一部分分配一个执行者和工作区。

stage 描述了这条Pipeline的一个阶段。

steps 描述了要在其中运行的步骤 stage

sh 执行给定的shell命令

junit 是由JUnit插件提供的 用于聚合测试报告的Pipeline步骤。

3、pipeline Demo演示

前提条件:

  1. Jenkins 2.x或更高版本

  2. Pipeline插件

可以通过以下任一方式创建基本Pipeline:

  1. 直接在Jenkins网页界面中输入脚本。

  2. 通过创建一个Jenkinsfile可以检入项目的源代码管理库。

用任一方法定义Pipeline的语法是一样的,从项目源码中检入jenkinsfile 文件会更方便一些。

  • 基于脚本构建 pipeline:

    pipeline 
        agent any
        stages 
            stage('Checkout') 
                steps 
                    echo 'Checkout'
            stage('Build') 
                steps 
                    echo 'Building'
                
            
            stage('test')
                steps
                    echo 'test'
                
            
        
    
  • 基于Jenkinsfile 构建:

    pipeline 
        agent any 
        stages 
            stage('checkout')  
                steps  
                    echo 'checkout' 
                    checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'gogs_luban', url: 'http://git.jiagouedu.com/java-vip/tuling-api-gateway']]])
                
            
            stage('build')
                steps 
                     echo 'build'
                     sh 'mvn clean install'
                
            
            stage('save') 
                steps 
                   echo 'save'
                   archiveArtifacts 'target/*.war'
                
            
        
    

16.1-jenkins持续集成01—jenkins服务搭建和部署(代码片段)

分类: Linux架构篇 一、介绍Jenkins1、Jenkins概念  Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用... 查看详情

jenkins知识概括(代码片段)

Jenkins知识概括持续集成及Jenkins介绍Jenkins安装和持续集成环境配置Jenkins构建Maven项目Jenkins+Docker+SpringCloud微服务持续集成(上)Jenkins+Docker+SpringCloud微服务持续集成(下)基于Kubernetes/K8S构建Jenkins持续集成平台(上)基于Kuberne... 查看详情

jenkins持续集成(代码片段)

1、Jenkins是一个可扩展的持续集成引擎、框架,是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。1)开发人员,对于开发人员来说,只需负责网站代码的编写,不需要手动再对源码进行编译... 查看详情

jenkins对项目持续集成的配置(代码片段)

查看详情

jenkins持续化集成(代码片段)

内容目录:jenkins概述与环境配置基于jenkins实现可持续化集成jenkinspipeline核心应用一、jenkins概述与环境配置关于可持续化集成(CI)jenkins概述下载安装jenkins基础环境配置与常用插件下载1、关于可持续化集成相信大家都知道jenkins... 查看详情

jenkins+gitlab实现持续集成(代码片段)

一、Jenkins及持续集成1)什么是Jenkins?Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:1)持续的软... 查看详情

kubernetes和jenkins——基于kubernetes构建jenkins持续集成平台(代码片段)

基于Kubernetes/K8S构建Jenkins持续集成平台Kubernetes+Docker+Jenkins持续集成架构图Kubernetes+Docker+Jenkins持续集成方案好处Kubeadm安装KubernetesKubernetes的架构安装环境准备安装Docker、kubelet、kubeadm、kubectl安装Docker安装kubelet、 查看详情

jenkins——jenkins介绍+基于云平台的jenkins安装和持续集成环境配置(插件+用户权限+凭据+maven打包)(代码片段)

Jenkins——Jenkins介绍+基于云平台的Jenkins安装和持续集成环境配置(插件+用户权限+凭据+Maven打包)持续集成及Jenkins介绍软件开发生命周期什么是持续集成?持续集成的组成要素持续集成的好处Jenkins介绍Jen... 查看详情

jenkins持续集成。(代码片段)

Jenkins持续集成自动化运维 Jenkins所有包下载链接:https://pan.baidu.com/s/1SXg-Av99xeyR3OdvJhv7Dg 提取码:dara Jenkins环境搭建由于Jenkins是依赖于java的,所以先介绍java环境的搭建 (1)使用官方的二进制包解压安装(上方有下... 查看详情

jenkins+git搭建持续集成环境(代码片段)

...使得系统在开发中始终保持在一个稳定健康的集成状态。jenkins是目前广泛应用的持续集成工具,本文记录我使用jenkins+Git配置持续集成环境的整个流程以及踩到的坑(jenkins过程的坑往往不是在第一次配置,而是在配置结束后更... 查看详情

jenkins持续集成使用教程(代码片段)

Jenkins持续集成使用教程用jenkins有什么好处通过规范化来完成,简单,繁琐,浪费时间的重复工作规范化工作,以免出现低级错误实现随时随地任何人一键构建......安装jenkins以Mac设备为例(Windows步骤类似),帮你一步一步搭建... 查看详情

linux企业运维——持续集成与持续交付(代码片段)

...库部署1.3、远程git仓库搭建2、搭建远程私有仓库gitlab3、jenkins持续集成3.1、jenkins简介3.2、jenkins安装3.3、jenkins插件安装3.4、jenkins使用(1)jenkin 查看详情

使用gitlab+jenkins实现持续集成(ci)环境(代码片段)

使用GitLab+Jenkins实现持续集成(CI)环境一、持续集成简介1.GitLab简介2.Jenkins简介3.GitLab和GitHub的区别4.持续集成系统的工作流程二、使用GitLab+Jenkins实现持续集成(CI)环境1.安装Gitlab1)登录Gitlab2)配... 查看详情

持续集成-jenkins介绍与环境搭建(代码片段)

什么是持续集成?  转自:https://blog.csdn.net/tanshizhen119/article/details/80328523  持续集成,俗称CI,大师MartinFowler对持续集成是这样定义的:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天... 查看详情

jenkins持续集成之jenkins安装(代码片段)

一、安装JDK与TOMCAT8参考地址:http://ibm.chick.blog.163.com/blog/static/144201610201652811537410/二、下载Jenkins安装包wgethttp://mirrors.jenkins.io/war/latest/jenkins.war三、把jenkins.war放到TOMCAT下的webapps四、启动tomcat并访问htt 查看详情

jenkins持续集成3(代码片段)

1.安装Pipeline插件,并初识1.启动Jenkins,打开浏览器http://localhost:8080,系统管理,用户名:chenshanju/1234562.系统管理-插件管理,安装pipeline插件<imgsrc="https://img2018.cnblogs.com/blog/1418970/201810/1418970-20181014105903553-1820442 查看详情

jenkins持续集成(代码片段)

...虚拟机的防火墙和SELINUX关闭3.主机名及IP地址关系如下:Jenkins192.168.205.191   不需要安装软件Gitlab10.0.0.190   安装好gitlabJenkins-->安装jenkins目录结构Jenkins没有数据库, 查看详情

使用jenkins实现持续集成(代码片段)

一、jenkins介绍 它是一个自动化的周期性的集成测试过程,从检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,无需人工干预,有利于减少重复过程以节省时间、费用和工作量;它需要有专门的集成... 查看详情