如何创建您的第一个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
结论
希望这让您对好处有所了解,以及如何创建一个。以上是一个简单的演示,学习的最佳方式是尝试构建复杂的流水线。