原文链接:www.edureka.co/blog/jenkin…
原文作者:www.edureka.co/blog/author…
发布时间:2020年11月25日
Jenkins是DevOps中最重要的工具之一。Jenkins被用于DevOps的持续集成阶段。在这篇博客中,我将谈论Jenkins的主站和从站架构。我将介绍的要点如下。
- 什么是Jenkins?
- Jenkins架构
- Jenkins主从架构是如何工作的?
- 用Jenkins主站设置从站
那么让我们从第一个话题开始。
什么是Jenkins?
Jenkins是一个用Java编写的开源自动化工具,其插件是为持续集成目的而构建的。Jenkins用于持续构建和测试你的软件项目,使开发人员更容易整合项目的变化,并使用户更容易获得新的构建。它还允许你通过与大量的测试和部署技术集成来持续交付你的软件。
有了Jenkins,企业可以通过自动化加速软件开发过程。Jenkins整合了各种开发生命周期的流程,包括构建、文档、测试、打包、阶段、部署、静态分析等等。
Jenkins在插件的帮助下实现了持续集成。插件允许整合各种DevOps阶段。如果你想集成一个特定的工具,你需要安装该工具的插件。例如,Git、Maven 2项目、Amazon EC2、HTML发布器等。
Jenkins的优点包括。
- 它是一个开源的工具,有很大的社区支持。
- 太容易安装了。
- 它有1000多个插件来减轻你的工作。如果一个插件不存在,你可以编码它并与社区分享。
- 它是免费的。
- 它是用Java构建的,因此,它可以移植到所有的主要平台。
Jenkins架构
让我们来看看Jenkins的架构,下面的图描述了相同的情况。
这种单一的Jenkins服务器不足以满足某些要求,比如。
-
有时你可能需要几个不同的环境来测试你的构建。这不能由单一的Jenkins服务器来完成。
-
如果更大、更重的项目经常被构建,那么单个Jenkins服务器不能简单地处理整个负载。
为了解决上述需求,Jenkins分布式架构应运而生。
Jenkins分布式架构
Jenkins使用主-从架构来管理分布式构建。在这个架构中,主服务器和从服务器通过TCP/IP协议进行通信。
Jenkins主服务器
你的主Jenkins服务器是Master。Master的工作是处理。
-
调度构建作业。
-
将构建工作分派给从属服务器进行实际执行。
-
监控从服务器(可能会根据需要让它们上线或下线)。
-
记录和展示构建结果。
-
一个Jenkins的主实例也可以直接执行构建作业。
Jenkins从属系统
Slave是一个在远程机器上运行的Java可执行文件。以下是Jenkins Slave的特点。
-
它听到来自Jenkins主实例的请求。
-
从机可以运行在各种操作系统上。
-
Slave的工作是按照他们的要求去做,这涉及到执行由Master调度的构建作业。
-
你可以将一个项目配置为总是在一个特定的从属机器或一个特定类型的从属机器上运行,或者简单地让Jenkins挑选下一个可用的从属机器。
下面的图是不言自明的。它由一个管理三个Jenkins Slave的Jenkins Master组成。
Jenkins主站和从站架构如何工作?
现在让我们看一个例子,我们使用Jenkins在不同的环境中进行测试,如Ubuntu、MAC、Windows,等等。
下图代表了同样的情况。
上面的图表示了以下功能。
-
Jenkins会定期检查Git仓库中的源代码是否有变化。
-
每次构建都需要不同的测试环境,这对于单个 Jenkins 服务器来说是不可能的。为了在不同的环境中进行测试,Jenkins使用各种Slave,如图所示。
-
Jenkins Master请求这些Slave来执行测试并生成测试报告。
如何设置Jenkins Master和Slaves?
转到管理Jenkins部分,向下滚动到管理节点部分。
- 单击 "New Node"(新节点)
- 给节点起个名字,选择永久代理选项,然后点击OK。
- 输入节点从机的详细信息。这里的 "执行器数量 "指的是这个从机可以并行运行的作业数量。在这里,我们把它保持为2。输入名称为 "Slave1 "的标签可以用来配置作业,以使用这个从属机器。选择 "用法",尽可能使用这个节点。对于启动方法,我们选择 "通过连接到主站启动代理 "的选项。如果这个选项不可见,那么进入Jenkins主页->管理Jenkins->配置全球安全。在这里,在代理部分点击随机并保存它。现在你会发现所需的选项。输入自定义WorkDir路径作为你的从属节点的工作空间。在可用性中选择 "尽可能保持此代理在线"。点击保存。
一旦你完成上述步骤,新的节点机器最初将处于离线状态,但如果前面屏幕中的所有设置都输入正确,就会上线。如果需要,人们可以在任何时候使节点从机处于离线状态。
- 现在,既然你的从机已经启动并运行,让我们在从机上执行一个作业。为此,我已经有了一个现有的作业,我将在这个从机上运行这个作业。打开这个作业,点击配置。现在在 "常规 "部分,点击 "限制此项目可运行的地方"。在Label Expression中,输入slave的名字,并保存它。现在点击Build now,看看这个作业的输出。一切正确,你将看到输出为成功。
至此,关于Jenkins主从架构的这篇博客就结束了。我希望你已经理解了这里所解释的所有概念。
现在你已经理解了什么是Jenkins主从架构,看看这个由Edureka提供的DevOps培训,Edureka是一家值得信赖的在线学习公司,拥有遍布全球的超过25万名满意的学习者网络。Edureka DevOps认证培训课程帮助学习者了解什么是DevOps,并获得各种DevOps流程和工具的专业知识,如Puppet、Jenkins、Nagios、Ansible、Chef、Saltstack和GIT,以实现SDLC的多个步骤自动化。
有问题要问我们吗?请在评论区提出,我们会给你答复。