14.Jenkins pipeline流水线

Jenkins pipeline流水线

        • 什么是pipeline
        • 流水线语法示例参考
        • Jenkins中创建一个pipeline的项目
          • 注意
        • Blue Ocean安装
        • 案例:
          • 通过pipeline实现,代码获取、检测、编译、部署这一套流程
            • 代码获取阶段
            • 代码检测阶段
            • 代码编译阶段
            • 代码部署阶段
            • 将流水线脚本贴到项目中去
            • 开始构建

什么是pipeline

简单来说,就是运行在Jenkins上的一种工作框架,通过代码的方式将多个任务连接起来

能够直观的看到,每个阶段的任务是什么,执行时间是多久,有没有错误
14.Jenkins pipeline流水线_第1张图片


pipeline有固定的语法结构


流水线语法示例参考

1.流水线项目配置中点击流水线语法

14.Jenkins pipeline流水线_第2张图片

2.根据示例步骤生成脚本
14.Jenkins pipeline流水线_第3张图片

3.再将脚本填入就可以了
在这里插入图片描述


Jenkins中创建一个pipeline的项目

1.创建一个pipeline项目

14.Jenkins pipeline流水线_第4张图片


2.流水线定义中选pipeline script
再写一个简单的流水线脚本后保存

14.Jenkins pipeline流水线_第5张图片


3.构建后就可以看到流水线的阶段视图(前提是安装过视图插件)
可以看出每个阶段在干什么,每个阶段的耗时
14.Jenkins pipeline流水线_第6张图片


注意

1.需要提前安装流水线的阶段视图插件,不然不显示视图
14.Jenkins pipeline流水线_第7张图片

2.构建pipeline时候提示(不管脚本里写多少内容都提示)

This Pipeline has run successfully, but does not define any stages. Please use the stage step to define some stages in this Pipeline.

解决方案:
检查是否安装pipeline-model-definition插件
有的话重装一下,没有的话安装一下

插件下载地址:
https://plugins.jenkins.io/pipeline-model-definition/releases/

下载好上传至Jenkins,安装好重启Jenkins即可


Blue Ocean安装

1.打开系统管理–>插件管理–>可选插件–>搜索 Blue Ocean–>安装

14.Jenkins pipeline流水线_第8张图片

2.安装完后,在页面上就可以看到Blue Ocean

14.Jenkins pipeline流水线_第9张图片

3.点击Blue Ocean打开,查看任务详情

14.Jenkins pipeline流水线_第10张图片

4.查看任务详情
14.Jenkins pipeline流水线_第11张图片

5.点击工作节点,可以查看运行过程中的日志信息

14.Jenkins pipeline流水线_第12张图片


案例:

通过pipeline实现,代码获取、检测、编译、部署这一套流程
代码获取阶段

1.在流水线项目中指定构建参数,选择Git Paramete
14.Jenkins pipeline流水线_第13张图片

2.生成获取代码的流水线语法,复制到流水线脚本中

代码检出,通过版本控制检出
填写仓库地址以及凭证
调用上面的变量
14.Jenkins pipeline流水线_第14张图片

在这里插入图片描述


代码检测阶段

代码检测,执行脚本调用Sonar即可

sh '/usr/local/sonar-scanner-4.8.0.2856-linux/bin/sonar-scanner \
	            -Dsonar.projectKey=${JOB_NAME} \
                -Dsonar.sources=. \
                -Dsonar.host.url=http://192.168.xx.xxx:9000 \
                -Dsonar.login=squ_ea1e24e2d8d8f1851ea25f53870426ad5c2eb86f'

代码编译阶段

执行脚本,编译,跳过测试用例

sh 'mvn package -Dmaven.test.skip=true'

代码部署阶段

调用之前自动部署java应用的脚本即可

sh 'sh -x /var/lib/jenkins/scripts/java_rolback_tag.sh'

脚本内容如下:

#!/usr/bin/bash

#1.删除软连接
#2.重新创建软连接


webservers="192.168.xx.xxx 192.168.xx.xxx"
    Date=$(date +%F-%H-%M)
    Web_Dir=/opt
    Web_Name=ROOT_${Date}_${git_version} #包名中加上tag信息

    for host in ${webservers}
    do
    	ssh root@$host " [ -d ${Web_Dir}/ROOT_*_${git_version} ] && \
    			rm -f /soft/tomcat/webapps/ROOT && \
    			ln -s ${Web_Dir}/ROOT_*_${git_version} /soft/tomcat/webapps/ROOT && \
			pkill java && \
			/soft/tomcat/bin/startup.sh"
    done


将流水线脚本贴到项目中去

14.Jenkins pipeline流水线_第15张图片

脚本如下:

pipeline {
    agent any
    stages {
        stage('获取代码') {
         steps { 
           checkout scmGit(branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: '2327fc08-8582-402a-b794-c39e5b0cff14', url: '[email protected]:ops/new-java.git']])
         }
     }   
        stage('检测代码') {
         steps {
            sh '/usr/local/sonar-scanner-4.8.0.2856-linux/bin/sonar-scanner \
	            -Dsonar.projectKey=${JOB_NAME} \
                -Dsonar.sources=. \
                -Dsonar.host.url=http://192.168.xx.xxx:9000 \
                -Dsonar.login=squ_ea1e24e2d8d8f1851ea25f53870426ad5c2eb86f'
         }
     }      
        stage('编译代码') {
         steps {
            sh 'mvn package -Dmaven.test.skip=true'
         }
     }       
        stage('部署代码') {
         steps {
            sh 'sh -x /var/lib/jenkins/scripts/java_rolback_tag.sh'
         }
     }       
    }
}


开始构建

基于tags进行构建

14.Jenkins pipeline流水线_第16张图片

开始构建

14.Jenkins pipeline流水线_第17张图片

你可能感兴趣的:(Jenkins,jenkins,运维)