美文网首页工作专题CICD
DevOps神器Jenkins使用精髓第四弹jenkins Pi

DevOps神器Jenkins使用精髓第四弹jenkins Pi

作者: 满古德拉克 | 来源:发表于2018-02-03 17:24 被阅读113次

    全部文章

    DevOps神器Jenkins使用精髓第O弹之开头
    DevOps神器Jenkins使用精髓第一弹之初始化配置
    DevOps神器Jenkins使用精髓第三弹之常用插件
    DevOps神器Jenkins使用精髓第四弹jenkins Pipeline起步
    DevOps神器Jenkins使用精髓第五弹之API的使用

    一、什么是Pipeline

    Jenkins Pipeline是一套插件,提供了一组可扩展的工具,将我们原来意义上的手动配置每一个Jenkins Job的具体配置项变成将所有配置代码化, 并再次配合Gitlab等版本控制系统去保存我们的代码配置, 这样子无论Job在未来需要更新, 或者需要回滚到之前的某一个配置, 又或者一个新的Job需要参考之前的老Job的配置并直接套用, 又或者我们需要去批量生成若干个Job配置, 我们都可以像管理软件代码的方式去管理我们的Jenkins Job配置. 这样就极大的简化我们自动化部署的结构, 将以前需要手动配置Job的这个步骤, 直接代码化. 最终体现出我们DevOps的最终目标.

    二、入门示例

    让我们创建一个Pipeline项目

    创建后直接进入Pipeline脚本编写位置

    为了方便大家复制,我把代码贴到下面

    pipeline {
        agent any 
        stages {
            stage('Build') { 
                steps { 
                    sh 'ls /' 
                }
            }
            stage('Test'){
                steps {
                    sh 'ls /etc'
                }
            }
            stage('Deploy') {
                steps {
                    sh 'ls -la /'
                }
            }
        }
    }
    

    查看执行结果:

    我执行了6次构建,其中前5次我估计写错,图中黄色圆圈正是代码中stage部分,Pipeline有一个特点,就是当任何一段代码执行报错,接下来代码都不会被执行,相当于编程中函数的return功能。当然代码中可以加入post模块用来返回Pipeline结果,先不要急,我将在后续详细讲解语法时说到。

    三、Pipeline脚本管理的另一种模式

    官方解释:
    复杂的Pipeline难以在Pipeline配置页面的文本区域内进行写入和维护。为了使这更容易,Pipeline也可以写在文件中,作为Jenkinsfile,并检查源控件(比如git),Jenkins可以通过Pipeline脚本从SCM选项加载的控件。选择SCM选项中的Pipeline脚本后,不要在Jenkins UI中输入任何Groovy代码; 您只需指定要从其中检索Pipeline的源代码中的路径。更新指定的存储库时(比如git),只要Pipeline配置了SCM轮询触发器,就会触发一个新构建。
    我来翻译:
    说白了就是把页面中的脚本放入一个jenkinsfile文件中编写,并放入git仓库进行管理,同时jenkins项目配置git地址,使用git仓库的webhook也好jenkins的CSM轮询也罢,又或者手动触发,都可以让这个jenkins Pipeline项目基于你编写的jenkinsfile进行构建。

    下面看看具体配置
    jenkins项目中Pipeline的设置

    gitlab中的jenkinsfile

    相关文章

      网友评论

      • 大喵哥哥666:勾选了groovy沙盒之后构建报错,groovy.lang.MissingPropertyException: No such property: pipeline for class: groovy.lang.Binding
        at groovy.lang.Binding.getVariable(Binding.java:63),有人遇到过没😭

      本文标题:DevOps神器Jenkins使用精髓第四弹jenkins Pi

      本文链接:https://www.haomeiwen.com/subject/xiwuzxtx.html