📜  Jenkins教程

📅  最后修改于: 2021-01-04 02:43:43             🧑  作者: Mango

詹金斯教程

Jenkins教程专为初学者和专业人士设计。我们的教程提供了Jenkins的所有基本和高级概念,例如Jenkins安装,Jenkins配置,Jenkins管道等。

Jenkins是用Java编程语言编写的开放源代码自动化工具,该工具可以进行持续集成。

Jenkins可以构建和测试我们的软件项目,这使开发人员能够更轻松地将更改集成到项目中,并使用户更容易获得全新的构建。

詹金斯是什么?

Jenkins是用Java编程语言编写的开放源代码自动化工具,该工具可以进行持续集成。

Jenkins构建测试了我们的软件项目,这使开发人员能够不断轻松地将更改集成到项目中,并使用户更容易获得全新的构建。

它还使我们能够通过与大量测试和部署技术集成来持续交付我们的软件。

Jenkins提供了一种简单的方法,可以使用管道为语言和源代码存储库的几乎任何组合设置持续集成或持续交付环境,并自动执行其他常规开发任务。

在Jenkins的帮助下,组织可以通过自动化加快软件开发过程。 Jenkins添加了各种开发生命周期过程,包括构建,文档,测试,打包,阶段,部署静态分析等等。

Jenkins借助插件实现了CI(持续集成)。插件用于允许集成各种DevOps阶段。如果要集成特定工具,则必须安装该工具的插件。例如:Maven 2项目,Git,HTML Publisher,Amazon EC2等。

例如:如果任何组织正在开发项目,那么Jenkins将不断测试您的项目构建,并向您显示开发早期的错误。

Jenkins执行的可能步骤例如:

  • 使用诸如Gradle或Maven Apache之类的构建系统执行软件构建
  • 执行一个shell脚本
  • 存档构建结果
  • 运行软件测试

工作流程:

詹金斯的历史

SUN Microsystems的Java开发人员Kohsuke Kawaguchi厌倦了重复编写代码和修复错误的工作。 2004年,他创建了一个名为Hudson的自动化服务器,该服务器可以自动执行构建和测试任务。

2011年,拥有Sun Microsystems的Oracle与Hudson开源社区发生了争执,因此他们将Hudson分叉并将其重命名为Jenkins

哈德森和詹金斯都继续独立运作。但是在很短的时间内,詹金斯获得了许多贡献者和项目,而哈德森只剩下32个项目。然后随着时间的流逝,詹金斯变得越来越受欢迎,哈德森也不再保持。

什么是持续集成?

持续集成(CI)是一种开发实践,其中开发人员需要定期对共享存储库中的源代码进行更改。然后将构建存储库中所做的每个提交。这使开发团队可以及早发现问题。

持续集成要求开发人员进行常规构建。通常的做法是,每当发生代码提交时,都应触发构建。

与Jenkins的持续集成

让我们考虑这样一种情况:先构建应用程序的完整源代码,然后将其部署在测试服务器上进行测试。听起来这是开发软件的理想方法,但是此过程存在许多问题。

  • 开发人员团队必须等到为测试结果开发完整的软件。
  • 测试结果很有可能显示多个错误。开发人员很难找到这些错误,因为他们必须检查应用程序的整个源代码。
  • 这会减慢软件交付过程。
  • 缺少与架构或编码问题,构建失败,测试状态和文件发布上载等相关的持续反馈,这会导致软件质量下降。
  • 整个过程是手动的,这增加了频繁失败的威胁。

从上述问题可以明显看出,不仅软件交付过程变慢,而且软件质量也下降了。这导致客户不满意。

因此,要克服这种问题,就需要有一个系统,开发人员可以在该系统中持续触发构建并测试源代码中的每个更改。

这就是持续集成(CI)的全部意义。 Jenkins是可用的最成熟的持续集成工具,因此让我们看一下如何与Jenkins进行持续集成克服了上述缺点。

让我们看一下Jenkins持续集成的一般流程图:

让我们看看詹金斯是如何工作的。上图表示以下功能:

  • 首先,开发人员将代码提交到源代码存储库。同时,Jenkins定期检查存储库是否有更改。
  • 发生提交后不久,Jenkins服务器会发现源代码存储库中发生的更改。詹金斯(Jenkins)将绘制这些更改,并将开始准备新版本。
  • 如果构建失败,则将通知相关团队。
  • 如果构建成功,则Jenkins服务器将部署在测试服务器中。
  • 测试后,Jenkins服务器生成反馈,然后将有关构建和测试结果的信息通知开发人员。
  • 它将继续验证源代码存储库中是否有对源代码所做的更改,并且整个过程将不断重复。

使用Jenkins的优缺点

詹金斯的优势

  • 它是一个开源工具。
  • 它是免费的。
  • 它不需要其他安装或组件。意味着易于安装。
  • 易于配置。
  • 它支持1000个或更多的插件,以简化您的工作。如果不存在插件,则可以为其编写脚本并与社区共享。
  • 它是用Java内置的,因此可移植。
  • 它是平台无关的。它适用于所有平台和不同的操作系统。像OS X,Windows或Linux。
  • 易于支持,因为它开源并且被广泛使用。
  • Jenkins还支持基于云的体系结构,因此我们可以在基于云的平台中部署Jenkins。

詹金斯的缺点

  • 与当前用户界面趋势相比,其界面已过时且不友好。
  • 维护起来并不容易,因为它运行在服务器上,并且需要一些服务器管理员的技能来监视其活动。
  • 由于某些较小的设置更改,CI经常会中断。 CI将被暂停,因此需要开发人员团队的注意。

詹金斯建筑

Jenkins遵循Master-Slave体系结构来管理分布式构建。在此体系结构中,从属服务器和主服务器通过TCP / IP协议进行通信。

Jenkins体系结构包含两个组件:

  • Jenkins主服务器
  • Jenkins从站/节点/构建服务器

詹金斯·马斯特

Jenkins的主要服务器是Jenkins Master。它是一个Web仪表板,仅由war文件提供支持。默认情况下,它在8080端口上运行。借助仪表板,我们可以配置作业/项目,但是构建在节点/从站中进行。默认情况下,一个节点(从站)已配置并在Jenkins服务器中运行。我们可以使用ssh,jnlp或webstart方法使用IP地址,用户名和密码添加更多节点。

服务器的工作或主服务器的工作是要处理:

  • 计划构建作业。
  • 调度构建到实际执行的节点/从站。
  • 监视节点/从站(可能根据需要使它们联机和脱机)。
  • 记录并显示构建结果。
  • Jenkins的主服务器实例也可以直接执行构建作业。

詹金斯奴隶

Jenkins从属服务器用于执行由主服务器调度的构建作业。我们可以将项目配置为始终在特定的从属机器或特定类型的从属机器上运行,或者简单地让Jenkins选择下一个可用的从属/节点。

众所周知,Jenkins是使用Java开发的,并且与平台无关,因此可以在包括Linux,Windows和Mac在内的任何服务器中配置Jenkins主服务器/从服务器/节点。

上图是不言自明的。它由一个管理三个Jenkins从站的Jenkins Master组成。

先决条件

在学习Jenkins之前,您应该对测试和Java有基本的了解。

听众

我们的詹金斯教程旨在帮助初学者和专业人士。

问题

我们向您保证,此《詹金斯教程》不会有任何问题。但是,如果有任何错误,请在联系表格中发布问题。