你好,欢迎来到js代码网。

微信登录

首页>系统/运维> 进大厂必须掌握的53个Jenkins面试题

进大厂必须掌握的53个Jenkins面试题

  • 分类:系统/运维
  • 时间:2022-05-12
  • 阅读:134

简介:Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。

一、初级

1、Jenkins和Bamboo有什么区别?



2、Jenkins是什么?


Jenkins是一个用Java编写的开源自动化工具,带有为持续集成目的而构建的插件。Jenkins用于持续构建和测试您的软件项目,从而使开发人员更容易将更改集成到项目中,并使用户更容易获得全新的构建。它还允许您通过与大量测试和部署技术集成来持续交付软件。

3、定义Jenkins的过程。


首先,开发人员将代码提交到源代码存储库。同时,Jenkins服务器会定期检查存储库是否有更改。

提交后不久,Jenkins服务器检测到源代码存储库中发生的更改。Jenkins将撤消这些更改,并将开始准备新版本。

如果构建失败,则将通知相关团队。

如果构建成功,则Jenkins将构建部署到测试服务器中。

在测试之后,Jenkins生成反馈,然后将有关构建和测试结果的信息通知开发人员。

它将继续检查源代码存储库中是否对源代码进行了更改,并且整个过程不断重复。

4、使用Jenkins有什么好处?


在集成阶段,您可以缓存构建失败。

对于源代码中的每个更改,您都会生成一个自动生成报告通知。

为了通知开发人员构建报告的成功或失败,Jenkins与LDAP邮件服务器集成。

实现持续集成的敏捷开发和测试驱动的开发。

通过简单的步骤,您可以使Maven发布项目自动化。

在开发环境中比生产阶段更容易在早期阶段跟踪错误。

5、使用Jenkins的前提条件是什么?


可访问的源代码存储库,例如Git存储库。

一个有效的构建脚本(例如Maven脚本)签入到存储库中。

6、Hudson和Jenkins之间是什么关系?


您可以说Hudson是当前Jenkins的早期名称和版本。经过一些问题,他们将项目从Hudson重命名为Jenkins。

7、在Jenkins中提及一些有用的插件


下面我提到了一些重要的插件:

Maven 2 project

Git

Amazon EC2

HTML publisher

Copy artifact

Join

Green Balls




我觉得这些插件是最有用的插件,如果您想包括上面未提到的任何其他插件,也可以添加它们,但请确保先提及上述插件,然后再添加自己的插件。

8、您如何安装Jenkins?


要安装Jenkins,您只需执行以下五个步骤:



(1)安装Java版本8 – Jenkins是基于Java的应用程序,因此必须使用Java。

(2)安装Apache Tomcat版本9 – Tomcat对于部署Jenkins war文件至关重要。

(3)下载Jenkins war文件–必须安装Jenkins进行此战争。

(4)部署Jenkins war文件–您可以使用Tomcat部署Jenkins war文件来运行Jenkins。

(5)安装建议的插件–安装Jenkins建议的插件列表。



安装完成后,您将能够看到Jenkins仪表板。

9、可以与Jenkins集成的两个组件是什么?


版本控制系统,例如GIT,SVN。

构建像Apache Maven这样的工具。

10、什么是Maven?将Maven与Jenkins集成有什么好处?


Maven是一个构建管理工具。它使用简单的pom.xml来配置构建,测试和运行代码所需的所有依赖项。Maven管理测试项目的整个生命周期。与Jenkins集成后,maven Webdriver将构建项目并有效执行所有测试。

11、提及可以用来手动启动Jenkins的命令是什么。


Start Jenkins: jenkins.exe start Stop Jenkins: jenkins.exe stop Restart Jenkins: jenkins.exe restart

12、Jenkins支持哪些SCM工具?


AccuRev

CVS

Subversion

Git

Mercurial

Perforce

Clearcase

RTC


13、您将如何在Jenkins中定义Post?


Post是一个部分,其中包含在管道完成后可能要执行的几个其他步骤。条件块中所有步骤的执行取决于管道的完成状态。条件块包括以下条件- 成功,始终,失败,不稳定和中止的更改。

14、Jenkins中的参数是什么?


参数由“Agent”部分支持,它们用于支持各种用例管道。参数是在管道的顶级或单个阶段指令内定义的。

15、什么是Groovy?


Apache的Groovy是专为Java平台设计的语言。它是Jenkins的本地脚本语言。基于Groovy的插件通过出色的界面增强了Jenkins的功能,并构建了具有动态性和一致性的报告。

二、中级问题

16、您如何通过Jenkins克隆Git存储库?


如果要通过Jenkins克隆Git存储库,则必须输入Jenkins系统的电子邮件和用户名。切换到您的作业目录并为此执行“ git config”命令。

17、说明如何设置Jenkins工作。


我要回答这个问题的方法是首先提到如何创建Jenkins工作。

转到Jenkins主页,选择“新建作业”,然后选择“构建自由样式的软件项目”。

现在,您可以说出此自由式作业的元素:

源代码所在的可选SCM,例如CVS或Subversion。

可选触发器,用于控制Jenkins何时执行构建。

某种执行实际工作的构建脚本(ant,maven,shell脚本,批处理文件等)。

从构建中收集信息的可选步骤,例如,归档工件和/或记录javadoc和测试结果。

通知其他人员/系统构建结果的可选步骤,例如发送电子邮件,IM,更新问题跟踪器等。


18、如何在Jenkins中创建备份和复制文件?


这个问题的答案确实是直接的。

要创建备份,您需要做的就是定期备份Jenkins_HOME目录。这包含所有构建作业配置,从属节点配置以及构建历史记录。要创建您的Jenkins设置的备份,只需复制此目录。您还可以复制作业目录以克隆或复制作业或重命名目录。

19、您将如何保护Jenkins?


如果您除了提到Jenkins之外还有其他方法可以确保安全,请在下面提到:

确保全局安全性已启用。

使用适当的插件检查Jenkins是否已与我公司的用户目录集成。

确保已启用矩阵/项目矩阵以微调访问。

使用自定义版本控制脚本在Jenkins中自动设置权限/特权的过程。

限制对Jenkins数据/文件夹的物理访问。

定期对其进行安全审核。


20、解释如何部署核心插件的自定义版本?


以下是部署自定义构建核心插件的步骤:

停止Jenkins。

将自定义HPI复制到 $ Jenkins_Home / plugins。

删除以前扩展的插件目录。

制作一个名为 .hpi.pinned的空文件 。

启动Jenkins。


21、当您在Jenkins(Jenkins)项目中看到损坏的版本时,该怎么办?


这个问题可能有多个答案,我将通过以下方式处理此任务:

我将为损坏的版本打开控制台输出,并尝试查看是否丢失了任何文件更改。如果无法以这种方式找到问题,则将清理并更新本地工作区以在本地复制问题并尝试解决。

如果您采用其他方式,则只需在答案中提及即可。

22、在Jenkins中可以通过什么方式安排构建?


您可以通过以下方式在Jenkins中计划构建:

通过源代码管理提交

完成其他构建后

可以安排在指定时间运行(crons)

手动构建请求


23、Jenkins中管道的用途是什么?


Jenkins中使用Pipeline插件来制作Jenkins Pipeline,这使我们能够以阶段或任务的形式在管道表单中依次执行任务。它为一系列相关任务建模。管道可以帮助团队审查,编辑和迭代任务。管道是耐用的,它可以选择停止并等待人工批准,也可以开始下一个任务。管道是可扩展的,可以并行执行工作。它支持复杂的CD要求。

24、解释术语Agent,Post-section,Jenkinsfile


Agent:指示Jenkins以特定方式和顺序执行管道的指令。

Post-section:如果我们必须在管道的末尾添加一些通知并执行其他任务,则Post-section肯定会在每个管道的执行结束时运行。

Jenkinsfile:定义了管道的所有定义的文本文件称为Jenkinsfile。正在源代码控制存储库中检查它。

25、您了解云计算吗?Jenkins如何适应云计算环境?举例说明。


让我们以AWS云服务为例。云计算服务使用CI / CD模型,以便他们可以将工作推向客户并不断收到反馈。Jenkins用于使CI / CD管道自动化。例如,许多Jenkins插件可用于许多AWS服务,例如Amazon EC2和ECS。

26、什么是Kubernetes?您如何将Jenkins与Kubernetes集成?


Kubernetes是一个容器编排工具。使用Kubernetes,可以创建多个容器实例以实现更高的容错能力。您可以使用Kubernetes部署插件将其与Jenkins一起使用以进行连续部署。

27、您是否在Jenkins上运行自动化测试?怎么做?



是的,这很容易做到。自动化测试可以通过Selenium或maven之类的工具运行。开发人员可以安排测试运行。Jenkins显示测试结果并将报告发送给开发人员。

28、让我们说,您有一条管道。第一项工作成功,但是第二项失败。接下来您该怎么办?


您只需要通过执行“从阶段重新启动”就可以从发生故障的点重新启动管道。

29、Jenkins HOME目录的用途是什么?


所有设置,日志和配置都存储在Jenkins_HOME目录中。

30、什么是备用插件?为什么使用它?


这是一个有用的插件,可备份将来要使用的所有关键设置和配置。如果发生故障,这样我们就不会丢失设置,这很有用。

31、什么是触发器?举例说明检测到新提交时如何轮询存储库。


触发器用于定义何时以及如何执行管道。

当Jenkins与SCM工具(例如Git)集成时,每次提交时都可以轮询存储库。

应该先安装并设置Git插件。

之后,您可以构建一个触发器,该触发器指定何时应开始新的构建。例如,您可以创建一个作业,该作业将轮询存储库并在提交更改时触发构建。

32、您如何在Jenkins中定义构建的参数?


构建可以采用多个输入参数来执行。例如,如果您有多个测试套件,但只想运行一个。您可以设置一个参数,以便能够决定应运行哪个参数。要在作业中包含参数,则在定义参数时需要指定相同的参数。该参数可以是任何东西,例如字符串,文件或自定义。

33、配置Jenkins节点Agent以与Jenkins master通信的方式有哪些?


有两种方法可以启动节点代理–

浏览器–如果从浏览器启动Jenkins节点代理,则将下载JNLP(Java Web Start)文件。该文件在客户端计算机上启动新进程以运行作业。

命令行–要使用命令行启动节点代理,客户端需要可执行的agent.jar文件。运行此文件时,它仅在客户端上启动一个进程以与Jenkins主服务器通信以运行构建作业。

34、Jenkins如何验证用户身份?


有3种方法


默认方式是将用户数据和凭据存储在内部数据库中。

将Jenkins配置为使用由部署它的应用程序服务器定义的身份验证机制。

配置Jenkins以针对LDAP服务器进行身份验证。

35、您如何在Jenkins中使用第三方工具?


首先安装第三方软件

下载支持第三方工具的插件。

在管理控制台中配置第三方工具。

然后使用Jenkins构建作业中所需的插件。

对于不同的第三方工具,由于配置设置的不同,此过程可能会略有不同。

36、Jenkins的管道类型是什么?


CI CD管道(持续集成,持续交付)

脚本管道

声明式管道

37、Jenkins使用什么语法来计划构建作业或SVN轮询?


cron语法。

Cron语法使用五个星号表示,每个星号之间用空格隔开。语法如下– [分钟] [小时] [每月的某天] [月份] [一周的某天]。例如,如果您想为每个星期一的11.59 pm设置cron,则为59 11 * * 1

38、什么是DevOps,Jenkins处于哪个阶段?


DevOps是一种软件开发实践,它将软件开发(Dev)与IT运营(Ops)融合在一起,通过不断交付构建,修复,更新和功能,使整个开发生命周期变得更简单,更短。Jenkins扮演了至关重要的角色,因为它通过自动化构建,测试和部署过程来帮助实现这种集成。

39、您知道其他持续集成工具吗?Jenkins比其他任何人都更好吗?


还有许多其他CI工具,其中最突出的是–

TeamCity

Bamboo

Perforce

Circle CI

Go

ThoughtWorks

Integrity

Travis CI


还有更多。我们不能说Jenkins是否比每个人都要好,因为每个人都有自己独特的特征。例如,TeamCity提供了出色的.NET支持,但又复杂又昂贵,Travis CI与Jenkins一样免费,并且文档也不错。Bamboo也提供了高效,快速的构建,但并不是完全免费的,依此类推。

40、命名您在Shell脚本或批处理文件中使用过的Jenkins环境变量。


在任何Jenkins构建作业中,默认情况下都有许多环境变量可用。一些常用的包括:

$JOB_NAME

$NODE_NAME

$WORKSPACE

$BUILD_URL

$JOB_URL


请注意,随着新Jenkins插件的配置,更多的环境变量变得可用。例如,配置Jenkins Git插件后,新的Jenkins Git环境变量(例如$ GIT_COMMIT和$ GIT_URL)就可以在脚本中使用。

41、在Jenkins中,什么是持续集成?


在软件开发中,多个开发人员或团队在同一个Web应用程序的不同部分上工作。因此,在这种情况下,您必须通过集成所有模块来执行集成测试。为了做到这一点,每天都要对每段代码进行自动化处理,以便对所有代码进行测试。此过程称为连续集成。

42、您如何使用Jenkins实现持续集成?


所有开发人员都将其源代码更改提交到共享的Git存储库。

Jenkins服务器按指定的时间间隔检查共享的Git存储库,然后将检测到的更改纳入构建。

构建结果和测试结果共享给各个开发人员

生成的应用程序显示在Selenium等测试服务器上,并运行自动化测试。

干净且经过测试的内部版本已部署到生产服务器。

43、什么是DSL Jenkins?


Jenkins的“作业DSL /插件”由两部分组成-第一部分,域特定语言(DSL)本身,它允许用户使用基于Groovy的语言来描述工作,其次,是一个Jenkins插件,用于管理脚本和结果是更新并创建并维护了Jenkins工作。

44、如何在Jenkins中创建多分支管道?


多分支管道项目类型使您可以为同一项目的不同分支实现不同的Jenkinsfile。在Multibranch Pipeline项目中,Jenkins自动发现,管理和执行在源代码管理中包含Jenkinsfile的分支的管道。

45、Jenkins的工作或项目类型是什么?


Freestyle project

Maven project

Pipeline

Multibranch pipeline

External Job

Multi-configuration project

Github organization


46、Jenkins的蓝色海洋是什么?


这个项目的最初目的是重新思考Jenkins的用户体验,通过提供对开发团队重要的信息来建模和展示软件交付过程。只需尽可能少的点击即可完成此操作,同时仍然忠于Jenkins的核心可扩展性。虽然此项目处于开发的Alpha阶段,但目的是让Jenkins用户可以通过插件与Jenkins Classic UI并排安装Blue Ocean。

三、高级问题

47、什么是连续测试?


连续测试是您在软件交付管道中执行自动化测试的过程。这样做是为了使您尽早获得有关与软件相关的业务风险的反馈。它包括不断发展和扩展的测试自动化,以解决现代应用程序开发和交付日益增加的复杂性和步伐。

连续测试是指连续进行测试而不会发生任何形式的中断。在持续的DevOps流程中,软件变更从开发到测试再到部署都在不断变化。该代码经过不断的开发,交付,测试和部署。

48、解释如何将Jenkins从一台服务器移动或复制到另一台服务器?


我将通过将作业目录从旧服务器复制到新服务器来完成此任务。有多种方法可以做到这一点,我在下面提到了它:

您可以:

只需复制相应的作业目录,即可将作业从Jenkins的一个安装移至另一安装。

通过使用不同的名称克隆作业目录来复制现有作业。

通过重命名目录来重命名现有作业。请注意,如果您更改作业名称,则将需要更改任何其他尝试调用重命名作业的作业。


49、您如何将Git与Jenkins集成?


这些是将Git与Jenkins集成的步骤

(1)单击 Jenkins仪表板上的Manage Jenkins按钮:



(2)单击管理插件。



(3)在插件页面中

选择GIT插件

单击不重新启动就 安装。 根据您的互联网连接情况,该插件将需要一些时间才能完成下载,并且会自动安装。

您还可以选择选项 立即下载并在重新启动后安装。

如果您已经安装了Git插件,现在将看到“无可用更新”消息。

(4)安装插件后,转到Jenkins仪表板上的Manage Jenkins 。您将在其余列表中看到您的插件。



50、如果管理用户已将自己锁定在管理控制台之外,那么如何暂时关闭Jenkins安全性?


Jenkins_HOME文件夹包含一个名为config.xml的文件。启用安全性后,此文件包含一个名为useSecurity的XML元素,该元素将更改为true。如果将此设置更改为false,则下次重新启动Jenkins时将禁用安全性。

false

但是,我们必须了解,禁用安全性始终应该是万不得已和临时措施。解决身份验证问题后,请确保重新启用Jenkins安全性并重新启动CI服务器。

51、您可以定义连续交付工作流程吗?


下面的流程图显示了持续交付工作流程。希望通过视觉更容易理解。



52、持续交付和持续部署之间有什么区别?


连续交付:(手动部署到生产。不涉及要部署的每个变更。)



持续交付是一种软件开发实践,在这种实践中,您可以以可以随时将其发布到生产中的方式构建软件。通过持续集成开发团队构建的产品,对这些构建的产品运行自动测试以检测问题,然后将这些文件推送到类似于生产的环境中,以确保软件可以在生产环境中运行,可以实现持续交付。

连续部署:(自动部署到生产。涉及自动部署每个更改)



持续部署意味着您所做的每项更改都会通过管道,并且如果通过所有测试,则会自动部署到生产中。因此,使用这种方法,您可以自动完成所有工作,因此软件版本的质量完全取决于测试套件的质量。

53、您将管道作为代码是什么意思?


流水线代码 描述了一组功能,这些功能允许Jenkins用户使用源存储库中存储和版本化的代码定义流水线作业流程。这些功能使Jenkins可以发现,管理和运行多个源存储库和分支的作业,从而无需手动创建和管理作业。

要将 管道用作代码,项目必须包含在存储库根目录中命名的文件,该文件包含“管道脚本”。Jenkinsfile

此外,需要在Jenkins中配置启用工作之一:

多分支管道:自动构建单个存储库的多个分支

组织文件夹:扫描GitHub组织或Bitbucket团队以发现组织的存储库,自动为其创建托管的多分支管道作业


相关视频教程推荐:

Jenkins持续集成零基础入门到精通实战课程


相关文章