Jenkins CI/CD 管道
2025-02-17

今天,我们将从我们的第一个 CI/CD 工具 Jenkins 开始。我们将介绍该设置的含义、功能和基本要素。
什么是詹金斯?
Jenkins 是一款智能工具,帮助开发人员在 CI/CD 管道中轻松、一致地构建、测试和启动他们的代码软件。它是关键的开源自动化工具,对于 DevOps 领域和构建强大的 CI/CD 管道至关重要。它使开发人员能够一致地构建、验证和发布他们的软件产品。 Jenkins 是 CI/CD 领域中最有影响力的工具之一,提供了促进分布式构建的主从架构。
主节点充当协调器,监督 GUI 操作和 API 访问点,而代理(可互换地称为工作节点或从节点)执行实际工作负载。从本质上讲,Jenkins 是基石。简化软件开发和部署流程,提高可靠性,并加快交付高质量的软件解决方案。
将其视为指挥软件变更流程的交通警察。它通过协调软件团队不同部分的工作来确保一切顺利进行。它是开发人员的首选帮手,让他们的生活更轻松,软件更好。
安装和设置
我们要做的第一件事是通过 Docker 容器设置 Jenkins。我们将使其变得简单,以便我们可以继续讨论 Jenkins 的基本部分。在我们开始处理之前,请确保在本地主机上安装 docker。
- 让我们获取官方 Jenkins 镜像并启动 Jenkins 服务器。通过您的 IDE 托管它。
docker pull jenkins/jenkins$ docker run -d -p 8080:8080 -v jenkins_volume:/var/jenkins_home — name my_jenkins jenkins/jenkins在继续之前,让我分解一下上面在 Docker 容器中设置 Jenkins 的命令:
docker run:此命令启动容器。-d:它以分离模式运行,这意味着您不会直接看到任何日志。-p 8080:8080:该行导出一个端口供外部访问。-v:“v”表示卷,所有 Jenkins 文件都存储在其中。此步骤至关重要,因为如果没有它,如果容器终止或遇到问题,您的配置和设置可能会丢失。有关 Docker 卷的更多详细信息,请参阅 Docker 卷文档。jenkins_volume:这指向本地主机上的目录。:/var/jenkins_home:它链接到 Docker 容器内的目录。--name my_jenkins:这是一个可选的容器名称,但为容器提供名称被认为是一个很好的做法。jenkins/jenkins:最后,这表示图像的名称。
设置完成后,如果您打开 Web 浏览器并导航到 localhost:8080,您应该会看到预期的界面。
您需要密码才能登录 Jenkins。 Jenkins 通过启动服务器提供初始密码。这可以找到:
- 检查日志 →
docker log [容器名称]或 - 与容器交互并在给定路径
/var/jenkins_home/secrets/initialAdminPassword下查看
我会用第二种方式
#this is my initial password$ docker exec my_jenkins cat/var/jenkins_home/secrets/initialAdminPassword7805a2621fee4388bbc77e00b5655ad7然后单击继续并下一步安装首选插件。这将需要几分钟的时间。安装插件后,您应该会看到管理面板,您可以在其中设置您的名称和密码。

设置您的用户名、密码,然后保存以继续。下一个屏幕应显示您的 Jenkins 仪表板。

探索 Jenkins 管道
因此,我们将讨论有多少可用的管道。在Jenkins中,有很多项目:Maven、Projects Pipeline、External Job、多配置Project Folder Multi、Branch和Organization文件夹。
然而,最常用的管道类型是单管道和多分支管道。很少使用自由式项目。
那么什么是freestyle pipeline呢? Freestyle 是一个简单的项目,您可以在其中配置所有内容,Jenkins 将构建您的项目,并且您可以使用任何 SCM(源代码管理)。如果你想部署某些东西,你就想执行某些东西。然而,大多数管道都是基于 CI/CD 管道项目。
它基本上运行在代理上。代理基本上是执行者,执行您的所有步骤。我将向您展示一些代理和管道,这仅适用于 github 的单个分支。重新定位,假设你有一个产品
什么是单一管道

单管道示例
Jenkins 中的单个管道旨在构建、测试和部署一个特定的应用程序或项目。让我们回顾一下要点和优势
- 使用案例:当您有一个软件项目想要自动化构建和部署过程时,这是理想的选择。
- 配置:您在 Jenkins 中创建一个管道作业,它处理该单个项目的整个生命周期。
- 优点:对于小型项目而言,易于设置和管理。它简化了单个代码库的自动化。
什么是多分支管道

多分支管道示例
当您的软件项目有多个分支或版本,并且您希望独立地自动化每个分支的 CI/CD 流程时,请使用多分支管道。
- 用例:它非常适合具有多个开发分支(例如功能分支、开发、测试、登台、生产)的大型项目。
- 配置:您配置单个多分支管道作业,它会自动检测和管理源代码存储库中的分支。
- 优点:同时实现各个分支机构的自动化。它有助于确保每个分支都经过单独测试和部署,从而保持代码质量和稳定性。


这就是单管道配置的样子
在多分支上创建管道

- 插入显示名称,然后插入分支源凭据。
- 复制 Github URL 并推送到您的 IDE

前往您的存储库查看代码

将代码复制并粘贴到您的管道凭据中

确保您的 Github 凭据经过验证

1.策略-所有分支 2.发现拉取请求-当前请求 3.删除不需要的分叉部分

属性策略-所有分支→构建配置:Mode-Jenkinsfile

确保旧文件的保留天数为 3,然后旧项目的最大保留天数为 5-7 天。
之后您的管道就创建好了。我们将去扫描存储库来查看我们的状态。

然后我们将创建新的分支。

我们将使用 git 版本控制将代码推送到新分支
因此,如果您返回 Jenkins 存储库,您将单击扫描存储库,您将看到生产存储库。

在单击“扫描存储库”之前

刷新扫描存储库屏幕后

输入您的分支并查看它正在构建(#1 代表正在构建的分支)
在构建分支时,我们还可以在管道内创建 2 个或更多阶段。

让我们对生产分支进行更改并推送它。
确保我们的更改位于我们的存储库中。让我们访问我们的 Github。

前往分行。点击生产

这里是!
返回 Jenkins 并单击“立即构建”部分以查看分支生产。

部署更改之前

部署更改后
批准更改后,我们将发出拉取请求以将更改合并到我们的主分支上。

转到打开拉取请求

确认合并


我们确认这些更改已安装在我们的主分支中。
前

后

多分支管道的目的是让每个人都有自己的分支或者可能像一个团队。一群人或者一个团队可以做一些更改,或者他们可以对他们的更改进行单独的测试,而不是每次都创建一个 PR,然后将这些更改合并到主分支,然后启动单个分支管道。您还可以进行多分支并拥有一个单独的分支并测试您的更改。不会影响其他分支。
单分支管道 VS 多分支管道 - 结论
Jenkins 中单分支管道和多分支管道的主要区别在于它们的分支处理能力。单分支管道仅限于从单个分支构建更改,这使得它们不太适合具有多个正在进行的分支的存储库。另一方面,多分支管道提供了动态且高效的解决方案。它们自动检测并构建 GitHub 存储库中所有分支的更改,并根据需要为每个分支提供单独的 CI/CD 管道。这种多功能性简化了开发流程,使管理和测试跨不同分支的代码更改变得更加容易,所有这些都在一个统一的管道中进行。借助多分支管道,您可以通过有效处理多个分支及其各自的 CI/CD 要求来增强 Jenkins 工作流程。
总而言之,Jenkins 是软件开发领域的工厂经理。它是一个有助于自动化和简化构建、测试和部署代码过程的工具。但当你深入研究它的管道时,真正的魔力就会发生。这些管道就像工厂中的装配线,您可以在其中定义软件旅程的每一步,从编写代码到将其交付给用户。掌握 Jenkins 管道对于 DevOps 至关重要,因为它允许您创建组织良好的自动化工作流程,使您的软件开发过程更快、更可靠且不易出错。这是保持现代开发团队顺利运行的秘诀。因此,如果您正在深入研究 DevOps,Jenkins 及其管道将是您这段激动人心的旅程中最好的朋友。
