天天看点

云计算(9)—— jekins(2)

流水线

云计算(9)—— jekins(2)

Jenkins Pipeline总体介绍

1.Pipeline 是Jenkins 2.X核心特性,帮助Jenkins实现从CI到CD与DevOps的转变 2.Pipeline 简而言之,就是一套运行于Jenkins上的工作流框架,将原本独立 运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流 程编排与可视化。

什么是Jenkins Pipeline

1.Jenkins Pipeline是一组插件,让Jenkins可以实现持续交付管道的落地和实施。2.持续交付管道(CD Pipeline)是将软件从版本控制阶段到交付给用户或客户的完 整过程的自动化表现。3.软件的每一次更改(提交到源代码管理系统)都要经过一个复杂的过程才能被发布。

Why Pipeline?

本质上,Jenkins 是一个自动化引擎,它支持许多自动模式。Pipeline向Jenkins中添加了一组强大的工具, 支持用例 简单的CI到全面的CD pipeline。通过对一系列的相关任务进行建模, 用户可以利用pipeline的很多特性:

• 代码:Pipeline以代码的形式实现,通常被检入源代码控制,使团队能够编辑, 审查和迭代其CD流程。• 可持续性:Jenkins重启或者中断后都不会影响Pipeline Job。• 停顿:Pipeline可以选择停止并等待人工输入或批准,然后再继续Pipeline运行。• 多功能:Pipeline支持现实世界的复杂CD要求,包括fork/join子进程,循环和 并行执行工作的能力。• 可扩展:Pipeline插件支持其DSL的自定义扩展以及与其他插件集成的多个选项。

Pipeline与freestyle区别

1.Job调度方式 pipeline:通过结构化pipeline 语法进行调度,易于理解与阅读 freestyle:通过jenkins api或者cli进行调度

2.Job显示形式 pipline:提供上帝视角(全局视图) freestyle:没有视图

Jenkins Pipeline Job构建配置

云计算(9)—— jekins(2)
云计算(9)—— jekins(2)
云计算(9)—— jekins(2)
云计算(9)—— jekins(2)
云计算(9)—— jekins(2)

1.创建pipeline job任务,新建任务》输入任务名称》选择“流水线”》点击【确定】

云计算(9)—— jekins(2)

添加描述,This is my first test pipeline job

云计算(9)—— jekins(2)

添加 pipeline脚本,点击【保存】

云计算(9)—— jekins(2)

脚本解释

1.声明脚本,添加环境变量

云计算(9)—— jekins(2)

2.添加选项参数deploy_env,以及文本参数version

云计算(9)—— jekins(2)

3.新建stage任务,将定义deploy_env、version参数,传入到test.properties 中

云计算(9)—— jekins(2)

4.检查test.properties是否存在内容

云计算(9)—— jekins(2)

5.完整脚本

#!groovy


pipeline {
    agent {node {label 'master'}}


    environment {
        PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin"
    }


    parameters {
        choice(
            choices: 'dev\nprod',
            description: 'choose deploy environment',
            name: 'deploy_env'
            )
        string (name: 'version', defaultValue: '1.0.0', description: 'build version')
    }


    stages {
        stage("Checkout test repo") {
            steps{
                sh 'git config --global http.sslVerify false'
                dir ("${env.WORKSPACE}") {
                    git branch: 'master', credentialsId:"9aa11671-aab9-47c7-a5e1-a4be146bd587", url: 'https://[email protected]/root/test-repo.git'
                }
            }
        }
        stage("Print env variable") {
            steps {
                dir ("${env.WORKSPACE}") {
                    sh """
                    echo "[INFO] Print env variable"
                    echo "Current deployment environment is $deploy_env" >> test.properties
                    echo "The build is $version" >> test.properties
                    echo "[INFO] Done..."
                    """
                }
            }
        }
        stage("Check test properties") {
            steps{
                dir ("${env.WORKSPACE}") {
                    sh """
                    echo "[INFO] Check test properties"
                    if [ -s test.properties ]
                    then 
                        cat test.properties
                        echo "[INFO] Done..."
                    else
                        echo "test.properties is empty"
                    fi
                    """


                    echo "[INFO] Build finished..."
                }
            }
        }
    }
}      
云计算(9)—— jekins(2)

jenkins配置邮件通知

安装邮件插件

由于Jenkins自带的邮件功能比较鸡肋,因此这里推荐安装专门的邮件插件,不过下面也会顺带介绍如何配置Jenkins自带的邮件功能作用。

可以通过系统管理→管理插件→可选插件,选择Email Extension Plugin插件进行安装:

云计算(9)—— jekins(2)

由于我已经安装了该插件,因此这里显示在已安装目录下,还未安装的童鞋可以通过右上角的搜索框搜索改插件,然后在线安装,安装好之后重启Jenkins。

云计算(9)—— jekins(2)

二、系统设置

通过系统管理→系统设置,进行邮件配置:

云计算(9)—— jekins(2)

1、设置jenkins地址和管理员邮箱地址

云计算(9)—— jekins(2)

2、设置发件人等信息

PS:这里的发件人邮箱地址切记要和系统管理员邮件地址保持一致(当然,也可以设置专门的发件人邮箱,不过不影响使用,根据具体情况设置即可)

云计算(9)—— jekins(2)
云计算(9)—— jekins(2)

上图的默认收件人邮箱可以添加多人,中间用英文半角逗号隔开即可。

3、配置邮件内容模版

云计算(9)—— jekins(2)

附:邮箱内容模版(Default Content):

<!DOCTYPE html>    
<html>    
<head>    
<meta charset="UTF-8">    
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>    
</head>    


<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"    
    offset="0">    
    <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">    
        <tr>    
            本邮件由系统自动发出,无需回复!<br/>            
            各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br> 
            <td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>   
        </tr>    
        <tr>    
            <td><br />    
            <b><font color="#0B610B">构建信息</font></b>    
            <hr size="2" width="100%" align="center" /></td>    
        </tr>    
        <tr>    
            <td>    
                <ul>    
                    <li>项目名称 :${PROJECT_NAME}</li>    
                    <li>构建编号 :第${BUILD_NUMBER}次构建</li>    
                    <li>触发原因:${CAUSE}</li>    
                    <li>构建状态:${BUILD_STATUS}</li>    
                    <li>构建日志:<a href="${BUILD_URL}console">${BUILD_URL}console</a></li>    
                    <li>构建  Url :<a href="${BUILD_URL}">${BUILD_URL}</a></li>    
                    <li>工作目录 :<a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>    
                    <li>项目  Url :<a href="${PROJECT_URL}">${PROJECT_URL}</a></li>    
                </ul>    


<h4><font color="#0B610B">失败用例</font></h4>
<hr size="2" width="100%" />
$FAILED_TESTS<br/>


<h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4>
<hr size="2" width="100%" />
<ul>
${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
</ul>
详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>


            </td>    
        </tr>    
    </table>    
</body>    
</html>      

4、设置邮件触发机制

云计算(9)—— jekins(2)

上面的几步完成后,点击应用,保存即可。

5、配置Jenkins自带的邮件功能

配置内容如下,和Email Extension Plugin插件同样的配置,可以通过勾选通过发送测试邮件测试配置按钮来测试配置是否成功发送邮件,如下图:

云计算(9)—— jekins(2)

完成上面的系统设置后,点击保存即可。

三、项目配置

在完成系统设置后,还需要给需要构建的项目进行邮件配置。

1、进入项目配置界面

进入新建的项目界面,点击配置按钮,进入系统配置页面:

云计算(9)—— jekins(2)

2、配置构建后操作模块

进入系统配置页面后,点击上方的构建后操作选项,配置内容如下:

云计算(9)—— jekins(2)

进入构建后操作的模块,然后会看到下面的内容,具体的配置信息如图中标注:

云计算(9)—— jekins(2)

接上图:

云计算(9)—— jekins(2)

配置内容默认即可,邮件内容类型可以根据自己的配置选择,收件人列表可以从前面的系统设置中默认收件人选项配置。

四、构建触发邮件测试

如下图,为我收到的测试邮件,邮件内容可以通过系统设置里面进行个性化的配置,可参考我上面的模板,或者自定义即可。

云计算(9)—— jekins(2)

------------------- 消息中间件Rabbitmq ----------------------------------

消息中间件Rabbitmq(01)

消息中间件Rabbitmq(02)

消息中间件Rabbitmq(03)

消息中间件Rabbitmq(04)

消息中间件Rabbitmq(05)

消息中间件Rabbitmq(06)

消息中间件Rabbitmq(07)

------------------- ---------- 云计算  -------------------------------------

云计算(1)——docker的前世今生

云计算(2)—— 体系结构

云计算(3)—— 容器应用

云计算(4)—— LAMP

云计算(5)—— Dockerfile云计算(6)—— harbor

云计算(7)—— 网络

云计算(8)—— jekins(1)

继续阅读