如何创建您的第一个Jenkins管道?

创建Jenkins流水线的逐步指南

为什么使用Jenkins Pipeline?

持续交付(CD)是DevOps生命周期的重要组成部分。

它确保软件/应用开发人员创建的始终是生产就绪的软件。为了实现这一点,每当代码更新时,都需要连续构建、测试和部署。这就是Jenkins Pipeline的作用。

DevOps中,Jenkins Pipeline实现了持续集成和持续交付(CI/CD)。使用Jenkins Pipeline进行持续交付有助于以更快和更频繁的发布交付软件。这有助于在每个版本中纳入反馈。

Jenkins Pipeline是什么?

Jenkins Pipeline是使用Jenkins连续交付软件的一组作业。

我假设你知道Jenkins是什么。如果不知道,请查看这个Udemy course to master Jenkins

Jenkins流水线由多个状态或阶段组成,并按顺序一个接一个地执行。JenkinsFile是一个简单的文本文件,用于在Jenkins中创建代码化的流水线。它包含使用Groovy领域特定语言(DSL)编写的代码,这种语言易于编写和阅读。

您可以单独运行JenkinsFile,也可以从Jenkins网页界面中运行流水线代码。您可以使用两种方法创建Jenkins流水线。

  • 声明式 – 这是创建Jenkins Pipeline的一种新方法。在这里,您编写包含“pipeline”块的Groovy代码,将其提交到源代码管理(SCM)中。
  • 脚本 – 这是一种编写Groovy代码的方式,其中代码定义在“node”块中。

在进行演示之前,请确保您已安装Jenkins。确保您的系统上已经安装并运行了Jenkins。

创建Jenkins Pipeline

下面是Jenkins流水线流程的样子,它在开发人员创建软件(编码)和在生产环境中交付软件之间包含多个阶段。

让我们创建一个声明式流水线。

在Jenkins仪表板上,点击New Item。然后输入一个项目名称,例如“First Pipeline”,并选择“Pipeline”项目。然后点击OK。

点击下方的Pipeline选项卡,如下图所示,在此处放置您的JenkinsFile代码(Groovy代码)。

pipeline {
         agent any
         stages {
                 stage('Build') {
                 steps {
                     echo 'Hi, GeekFlare. Starting to build the App.'
                 }
                 }
                 stage('Test') {
                 steps {
                    input('Do you want to proceed?')
                 }
                 }
                 stage('Deploy') {
                 parallel { 
                            stage('Deploy start ') {
                           steps {
                                echo "Start the deploy .."
                           } 
                           }
                            stage('Deploying now') {
                            agent {
                                    docker {
                                            reuseNode true
                                            image ‘nginx’
                                           }
                                    }
                            
                              steps {
                                echo "Docker Created"
                              }
                           }
                           }
                           }
                 stage('Prod') {
                     steps {
                                echo "App is Prod Ready"
                              }
                 
              }
}
}

让我解释一下上面的代码块。

  • pipeline块包含构建、测试和交付软件的所有指令。它是Jenkins Pipeline的关键组件。
  • agent被分配执行节点上的流水线,并为流水线分配工作空间。
  • stage是一个包含构建、测试和部署应用程序的步骤块。阶段用于可视化Jenkins Pipeline的流程。
  • step是要执行的单个任务,例如创建目录、运行docker镜像、删除文件等。

上面的Groovy代码我用于JenkinsFile。任何可用的代理都会被分配给流水线。然后我定义了构建阶段并执行了一个简单的echo步骤。然后我定义了测试阶段,其中的步骤会询问您是否要继续。之后,我创建了一个部署阶段,在其中有两个并行运行的阶段。部署开始阶段有一个带有echo命令的步骤,而部署现在有一个在节点上拉取Nginx的docker镜像的步骤。最后,有一个简单的echo步骤的Prod阶段。

上述解释的流水线具有简单步骤的阶段,以便您了解其工作原理。一旦您学会了如何创建流水线,您可以增加更复杂的内容并创建复杂的流水线。

代码在Pipeline选项卡中后,点击应用和保存。最后,点击立即构建以开始构建刚刚创建的Jenkins流水线。

这是流水线运行时用户界面的样子。如果您按照所有步骤正确进行,构建将成功,并且它将为构建(#27)显示蓝色。如果构建中有错误,它将为构建(#27)显示红色。

现在点击#27构建,然后点击控制台输出以查看后端运行时发生了什么。

这是最后以成功消息结尾的输出样式。

上述的Jenkins流水线已经创建了一个Nginx的Docker镜像。可以通过运行以下命令验证。您可以看到Nginx Docker镜像也在列表中显示。

yaoweibin@chef-yaoweibin:~$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 540a289bab6c 2 weeks ago 126MB
httpd latest 7d85cc3b2d80 2 months ago 154MB
redis latest f7302e4ab3a8 2 months ago 98.2MB
yaoweibin_mongodb latest 095d17727ca0 3 months ago 325MB

结论

希望这让您对好处有所了解,以及如何创建一个。以上是一个简单的演示,学习的最佳方式是尝试构建复杂的流水线。

类似文章