Jenkins - 快速指南


Jenkins - 概述

为什么是Jenkins?

Jenkins 是一个允许持续集成的软件。Jenkins 将安装在将进行中央构建的服务器上。以下流程图演示了 Jenkins 工作原理的一个非常简单的工作流程。

为什么选择Jenkins

有时,除了 Jenkins 之外,人们还可能会看到Hudson的身影。Hudson 是一个非常流行的基于 Java 的开源持续集成工具,由 Sun Microsystems 开发,后来被 Oracle 收购。Oracle 收购 Sun 后,从 Hudson 源代码创建了一个分支,从而引入了 Jenkins。

什么是持续集成?

持续集成是一种开发实践,要求开发人员定期将代码集成到共享存储库中。这个概念旨在消除在构建生命周期中发现稍后出现的问题的问题。持续集成需要开发人员频繁构建。常见的做法是,每当发生代码提交时,就应该触发构建。

系统要求

JDK JDK 1.5 或以上
记忆 2 GB 内存(推荐)
磁盘空间 没有最低要求。请注意,由于所有构建都将存储在 Jenkins 计算机上,因此必须确保有足够的磁盘空间可用于构建存储。
操作系统版本 Jenkins 可以安装在 Windows、Ubuntu/Debian、Red Hat/Fedora/CentOS、Mac OS X、openSUSE、FReeBSD、OpenBSD、Gentoo 上。
Java容器 WAR 文件可以在任何支持 Servlet 2.4/JSP 2.0 或更高版本的容器中运行。(例如 Tomcat 5)。

Jenkins - 安装

下载Jenkins

Jenkins 的官方网站是Jenkins。如果您点击给定的链接,您可以访问 Jenkins 官方网站的主页,如下所示。

下载Jenkins1

默认情况下,最新版本和长期支持版本可供下载。过去的版本也可供下载。单击下载部分中的长期支持版本选项卡。

下载Jenkins2

单击链接“较旧但稳定的版本”下载 Jenkins war 文件。

启动Jenkins

打开命令提示符。从命令提示符中,浏览到 jenkins.war 文件所在的目录。运行以下命令

D:\>Java –jar Jenkins.war

该命令运行后,将运行各种任务,其中之一是提取 war 文件,该任务由名为 winstone 的嵌入式 Web 服务器完成。

D:\>Java –jar Jenkins.war
Running from: D:\jenkins.war
Webroot: $user.home/ .jenkins
Sep 29, 2015 4:10:46 PM winstone.Logger logInternal
INFO: Beginning extraction from war file

一旦处理完成且没有重大错误,命令提示符的输出中将出现以下行。

INFO: Jenkins is fully up and running

访问Jenkins

一旦 Jenkins 启动并运行,就可以从链接访问 Jenkins - http://localhost:8080

此链接将打开 Jenkins 仪表板。

访问Jenkins

Jenkins – Tomcat 设置

Jenkins Tomcat 设置必须满足以下先决条件。

第 1 步:验证 Java 安装

要验证 Java 安装,请打开控制台并执行以下 java 命令。

操作系统 任务 命令
Windows 打开命令控制台 \>java –版本
Linux 打开命令终端 $java –版本

如果 Java 已正确安装在您的系统上,那么您应该获得以下输出之一,具体取决于您正在使用的平台。

操作系统 输出
Windows

Java版本“1.7.0_60”

Java (TM) SE 运行时环境(内部版本 1.7.0_60-b19)

Java Hotspot (TM) 64 位服务器 VM(内部版本 24.60-b09,混合模式)

Linux

java版本“1.7.0_25”

打开JDK运行环境(rhel-2.3.10.4.el6_4-x86_64)

打开 JDK 64 位服务器 VM(内部版本 23.7-b01,混合模式)

我们假设本教程的读者在继续学习本教程之前已在其系统上安装了 Java 1.7.0_60。

如果您没有 Java JDK,可以从链接Oracle下载

第 2 步:验证 Java 安装

设置 JAVA_HOME 环境变量以指向计算机上安装 Java 的基本目录位置。例如,

操作系统 输出
Windows 将环境变量 JAVA_HOME 设置为 C:\ProgramFiles\java\jdk1.7.0_60
Linux 导出 JAVA_HOME=/usr/local/java-current

将 Java 编译器位置的完整路径附加到系统路径。

操作系统 输出
Windows 追加字符串;C:\Program Files\Java\jdk1.7.0_60\bin 到系统变量 PATH 的末尾。
Linux 导出路径=$PATH:$JAVA_HOME/bin/

如上所述,从命令提示符验证命令 java-version。

第三步:下载Tomcat

tomcat 的官方网站是Tomcat。如果您点击给定的链接,您可以看到tomcat官方网站的主页,如下所示。

下载Tomcat1

浏览链接https://tomcat.apache.org/download-70.cgi以获取 tomcat 的下载。

下载Tomcat2

转到“二进制发行版”部分。下载 32 位 Windows zip 文件。

然后解压下载的 zip 文件的内容。

第 4 步:Jenkins 和 Tomcat 设置

将上一节下载的Jenkis.war文件复制到tomcat文件夹中的webapps文件夹中。

现在打开命令提示符。从命令提示符中,浏览到 tomcat7 文件夹所在的目录。浏览到该文件夹​​中的 bin 目录并运行 start.bat 文件

E:\Apps\tomcat7\bin>startup.bat

一旦处理完成且没有重大错误,命令提示符的输出中将出现以下行。

INFO: Server startup in 1302 ms

打开浏览器并转到链接 - http://localhost:8080/jenkins。Jenkins 将在 tomcat 上启动并运行。

Jenkins 和 Tomcat 设置

Jenkins - Git 设置

对于本练习,您必须确保安装 Jenkins 的计算机存在 Internet 连接。在 Jenkins 仪表板(主屏幕)中,单击左侧的“管理 Jenkins”选项。

Jenkins Git 设置

在下一个屏幕中,单击“管理插件”选项。

管理Jenkins

在下一个屏幕中,单击“可用”选项卡。此选项卡将提供可供下载的插件列表。在“过滤器”选项卡中输入“Git 插件”

可用选项卡

然后将过滤该列表。选中 Git Plugin 选项并单击“Install without restart”按钮

Git 插件

然后安装将开始,屏幕将刷新以显示下载状态。

安装插件升级

所有安装完成后,通过在浏览器中发出以下命令来重新启动 Jenkins。http://localhost:8080/jenkins/restart

Jenkins 重新启动后,Git 将作为配置作业时的选项可用。要进行验证,请单击 Jenkins 菜单选项中的“新建项目”。然后输入作业的名称,在以下情况下,输入的名称是“Demo”。选择“自由式项目”作为项目类型。单击“确定”按钮。

新项目Jenkins

在下一个屏幕中,如果浏览到“源代码管理”部分,您现在将看到“Git”选项。

演示配置 Jenkins

Jenkins – Maven 设置

第 1 步:下载并设置 Maven

maven 的官方网站是Apache Maven。如果你点击给定的链接,你可以得到maven官方网站的主页,如下所示。

Maven 设置

浏览该站点时,转到“文件”部分并下载 Binary.zip 文件的链接。

Maven下载

下载文件后,将文件解压到相关的应用程序文件夹。为此,maven 文件将放置在 E:\Apps\apache-maven-3.3.3 中。

第 2 步:设置 Jenkins 和 Maven

在 Jenkins 仪表板(主屏幕)中,单击左侧菜单中的管理 Jenkins。

设置 Maven Jenkins

然后,单击右侧的“配置系统”。

管理Jenkins1 管理 Jenkins2

在配置系统屏幕中,向下滚动直到看到 Maven 部分,然后单击“添加 Maven”按钮。

添加Maven

取消选中“自动安装”选项。

添加设置的任何名称和 MAVEN_HOME 的位置。

然后,单击屏幕末尾的“保存”按钮。

配置Maven

您现在可以使用“Maven 项目”选项创建作业。在 Jenkins 仪表板中,单击“新建项目”选项。

Jenkins仪表板1 Jenkins仪表板2

Jenkins - 配置

您可能在之前的练习中多次看到我们必须在 Jenkins 中配置选项。下面显示了 Jenkins 中的各种配置选项。

因此,人们可以通过单击左侧菜单侧的“管理 Jenkins”选项来获取 Jenkins 的各种配置选项。

Jenkins配置1

然后您将看到以下屏幕 -

Jenkins配置2

单击配置系统。下面讨论的是一些可以执行的 Jenkins 配置设置。

Jenkins主目录

Jenkins 需要一些磁盘空间来执行构建和保存存档。人们可以从 Jenkins 的配置屏幕检查该位置。默认情况下,它设置为 ~/.jenkins,并且该位置最初将存储在您的用户配置文件位置中。在适当的环境中,您需要将此位置更改为适当的位置来存储所有相关的构建和存档。一旦可以通过以下方式做到这一点

  • 在启动 servlet 容器之前,将“JENKINS_HOME”环境变量设置为新的主目录。

  • 将“JENKINS_HOME”系统属性设置为 servlet 容器。

  • 将 JNDI 环境条目“JENKINS_HOME”设置为新目录。

以下示例将使用设置“JENKINS_HOME”环境变量的第一个选项。

首先新建一个文件夹E:\Apps\Jenkins。将现有 ~/.jenkins 中的所有内容复制到此新目录。

将 JENKINS_HOME 环境变量设置为指向计算机上安装 Java 的基本目录位置。例如,

操作系统 输出
Windows 将环境变量 JENKINS_HOME 设置为您想要的位置。例如,您可以将其设置为 E:\Apps\Jenkins
Linux export JENKINS_HOME =/usr/local/Jenkins 或您想要的位置。

在 Jenkins 仪表板中,单击左侧菜单中的管理 Jenkins。然后单击右侧的“配置系统”。

在主目录中,您现在将看到已配置的新目录。

Jenkins主目录

执行者数量

这是指 Jenkins 机器上可以发生的并发作业执行总数。这可以根据要求进行更改。有时,建议将此数字保持与计算机上的 CPU 数量相同,以获得更好的性能。

环境变量

这用于添加将应用于所有作业的自定义环境变量。这些是键值对,可以在需要时在构建中访问和使用。

Jenkins网址

默认情况下,Jenkins URL 指向 localhost。如果您的计算机设置了域名,请将其设置为域名,否则用计算机的 IP 覆盖 localhost。这将有助于设置从站以及使用电子邮件发送链接,因为您可以使用环境变量 JENKINS_URL(可以通过 ${JENKINS_URL} 访问)直接访问 Jenkins URL。

电子邮件通知

在电子邮件通知区域中,您可以配置发送电子邮件的 SMTP 设置。这是 Jenkins 连接到 SMTP 邮件服务器并向收件人列表发送电子邮件所必需的。

Jenkins - 管理

要管理 Jenkins,请单击左侧菜单侧的“管理 Jenkins”选项。

因此,人们可以通过单击左侧菜单侧的“管理 Jenkins”选项来获取 Jenkins 的各种配置选项。

Jenkins管理1

然后您将看到以下屏幕 -

Jenkins管理2

一些管理选项如下 -

配置系统

在这里,人们可以管理构建中使用的各种工具的路径,例如 JDK、Ant 和 Maven 的版本,以及安全选项、电子邮件服务器和其他系统范围的配置详细信息。当安装插件时。插件安装后,Jenkins 将动态添加所需的配置字段。

从磁盘重新加载配置

Jenkins 将其所有系统和构建作业配置详细信息存储为 XML 文件,该文件存储在 Jenkins 主目录中。这里还存储了所有构建历史记录。如果您要将构建作业从一个 Jenkins 实例迁移到另一个实例,或者归档旧的构建作业,则需要在 Jenkins 的构建目录中添加或删除相应的构建作业目录。您不需要让 Jenkins 离线来执行此操作 - 您只需使用“从磁盘重新加载配置”选项即可重新加载 Jenkins 系统并直接构建作业配置。

管理插件

在这里,人们可以直接从不同的源代码管理工具(例如 Git、Mercurial 或 ClearCase)安装各种第三方插件,以生成代码质量和代码覆盖率指标报告。可以通过“管理插件”屏幕安装、更新和删除插件。

管理插件

系统信息

该屏幕显示所有当前 Java 系统属性和系统环境变量的列表。在这里,我们可以准确地检查 Java Jenkins 运行的版本、运行的用户等等。

以下屏幕截图显示了本部分中可用的一些名称/值信息。

系统信息

系统日志

系统日志屏幕是实时查看 Jenkins 日志文件的便捷方式。同样,此屏幕的主要用途是进行故障排除。

负载统计

此页面显示 Jenkins 实例在并发构建数量和构建队列长度方面的繁忙程度的图形数据,从而了解您的构建在执行之前需要等待多长时间。这些统计数据可以从基础设施的角度很好地了解是否需要额外的容量或额外的构建节点。

脚本控制台

此屏幕允许您在服务器上运行 Groovy 脚本。它对于高级故障排除非常有用,因为它需要对内部 Jenkins 架构有深入的了解。

管理节点

Jenkins 能够处理并行和分布式构建。在此屏幕中,您可以配置所需的构建数量。Jenkins 同时运行,如果您使用分布式构建,请设置构建节点。构建节点是 Jenkins 可以用来执行构建的另一台机器。

准备关机

如果需要关闭 Jenkins 或运行 Jenkins 的服务器,最好不要在执行构建时这样做。要彻底关闭 Jenkins,您可以使用“准备关闭”链接,这会阻止启动任何新的构建。最终,当所有当前构建完成后,人们将能够干净地关闭 Jenkins。

Jenkins - 设置构建作业

对于本练习,我们将在 Jenkins 中创建一个作业,该作业选取一个简单的 HelloWorld 应用程序,构建并运行 java 程序。

第 1 步- 转到 Jenkins 仪表板并单击“新建项目”

设置构建作业

步骤 2 - 在下一个屏幕中,输入项目名称,在本例中我们将其命名为 Helloworld。选择“自由式项目选项”

你好世界

步骤 3 - 将出现以下屏幕,您可以在其中指定作业的详细信息。

你好世界配置

步骤 4 - 我们需要指定需要构建的文件的位置。在此示例中,我们假设已设置本地 git 存储库(E:\Program),其中包含“HelloWorld.java”文件。因此,向下滚动并单击 Git 选项,然后输入本地 git 存储库的 URL。

注意- 如果您的存储库托管在 Github 上,您还可以在此处输入该存储库的 url。除此之外,您还需要单击凭据的“添加”按钮,将用户名和密码添加到 github 存储库,以便可以从远程存储库获取代码。

Git 存储库

步骤 5 - 现在转到“构建”部分,然后单击“添加构建步骤”→“执行 Windows 批处理命令”

执行Windows批处理命令

步骤 6 - 在命令窗口中,输入以下命令,然后单击“保存”按钮。

Javac HelloWorld.java
Java HelloWorld

节省

步骤 7 - 保存后,您可以单击“立即构建”选项以查看是否已成功定义作业。

立即构建

步骤 8 - 一旦安排了构建,它将运行。以下构建历史记录部分显示构建正在进行中。

创造历史

步骤 9 - 构建完成后,构建状态将显示构建是否成功。在我们的例子中,以下构建已成功执行。单击构建历史记录中的#1 以显示构建的详细信息。

细节

步骤 10 - 单击控制台输出链接以查看构建的详细信息

控制台输出1 控制台输出2

除了上面显示的步骤之外,还有很多方法可以创建构建作业,可用的选项也很多,这使得 Jenkins 成为如此出色的持续部署工具。

Jenkins - 单元测试

Jenkins 为 Junit 提供了开箱即用的功能,并提供了许多用于其他技术的单元测试的插件,例如用于 .Net 单元测试的 MSTest。如果您访问链接https://wiki.jenkins-ci.org/display/JENKINS/xUnit+Plugin,它将提供可用的单元测试插件列表。

单元测试 单元测试插件

Jenkins 中的 Junit 测试示例

下面的例子将考虑

  • 一个基于 Junit 的简单 HelloWorldTest 类。
  • Ant 作为 Jenkins 中的构建工具来相应地构建类。

步骤 1 - 转到 Jenkins 仪表板并单击现有的 HelloWorld 项目并选择“配置”选项

联合测试示例

步骤 2 - 浏览到“添加构建步骤”部分,然后选择“调用 Ant”选项。

调用Ant

步骤 3 - 单击“高级”按钮。

高级按钮

步骤 4 - 在构建文件部分中,输入 build.xml 文件的位置。

XML 位置

步骤 5 - 接下来单击“添加构建后选项”选项,然后选择“发布 Junit 测试结果报告”选项

发布 Junit 报告

步骤 6 - 在测试报告 XML 中,输入如下所示的位置。确保 Reports 是在 HelloWorld 项目工作区中创建的文件夹。“*.xml”基本上告诉 Jenkins 获取由运行 Junit 测试用例生成的结果 xml 文件。这些 xml 文件随后会转换为可供稍后查看的报告。

完成后,单击最后的“保存”选项。

报告测试 XML

步骤 7 - 保存后,您可以单击“立即构建”选项。

构建完成后,构建状态将显示构建是否成功。在构建输出信息中,您现在会注意到一个名为“测试结果”的附加部分。在我们的例子中,我们输入了一个负面的测试用例,这样结果就会失败,只是作为一个例子。

构建选项

人们可以转到控制台输出来查看更多信息。但更有趣的是,如果您单击“测试结果”,您现在将看到测试结果的详细信息。

测试结果

Jenkins - 自动化测试

持续集成的基本原则之一是构建应该是可验证的。您必须能够客观地确定特定构建是否已准备好进入构建过程的下一阶段,而最方便的方法是使用自动化测试。如果没有适当的自动化测试,您会发现自己必须保留许多构建工件并手动测试它们,这几乎不符合持续集成的精神。以下示例展示了如何使用 Selenium 运行自动化 Web 测试。

步骤 1 - 转到管理插件。

自动化测试

步骤 2 - 找到 Hudson Selenium 插件并选择安装。重新启动 Jenkins 实例。

哈德森Selenium测试

步骤 3 - 转到配置系统。

配置系统

步骤 4 - 配置 selenium 服务器 jar 并单击“保存”按钮。

配置 Selenium 服务器

注意- selenium jar 文件可以从SeleniumHQ位置下载

单击 Selenium 独立服务器的下载。

下载 Selenium 独立服务器

步骤 5 - 返回仪表板并单击 HelloWorld 项目的“配置”选项。

配置

步骤 6 - 单击“添加构建步骤”并选择“SeleniumHQ htmlSuite Run”选项

SeleniumHQ htmlSuite 运行

步骤 7 - 添加Selenium测试所需的详细信息。这里的suiteFile是使用Selenium IDE生成的TestSuite。单击保存并执行构建。现在构建后将启动 selenium 驱动程序,并执行 html 测试。

Selenium 驱动程序 HTML 测试

Jenkins - 通知

Jenkins 附带了一个开箱即用的工具,可以为构建项目添加电子邮件通知。

步骤 1 - 配置 SMTP 服务器。转到管理 Jenkins → 配置系统。转至电子邮件通知部分并输入所需的 SMTP 服务器和用户电子邮件后缀详细信息。

SMTP服务器

步骤 2 - 在 Jenkins 项目中配置收件人 - 当您配置任何 Jenkins 构建项目时,最后可以添加收件人,这些收件人将收到有关不稳定或损坏的构建的电子邮件通知。然后单击“保存”按钮。

配置收件人

除了默认的之外,市场上还有可用的通知插件。一个例子是 Tikal Knowledge 的通知插件,它允许以 JSON 和 XML 格式发送作业状态通知。该插件允许配置端点,如下所示。

蒂卡尔知识插件

以下是每个选项的详细信息 -

  • “Format” - 这是通知有效负载格式,可以是 JSON 或 XML。

  • “协议” - 用于发送通知消息、HTTP、TCP 或 UDP 的协议。

  • “事件” - 触发通知的作业事件:作业开始、作业完成、作业完成或所有事件(默认选项)。

  • “URL” - 发送通知的 URL。对于 HTTP 协议,它采用“ http://host ”的形式;"host:port"对于 TCP 和 UDP 协议,它采用“http://host”的形式。

  • “超时” - 发送通知请求的超时时间(以毫秒为单位),默认为 30 秒。

Jenkins - 报告

如前面部分所示,有许多可用的报告插件,其中最简单的一个是可用于 jUnit 测试的报告。

在任何作业的构建后操作中,您可以定义要创建的报告。构建完成后,“测试结果”选项将可用于进一步深入分析。

Jenkins报告

Jenkins - 代码分析

Jenkins 有许多代码分析插件。各种插件可以在https://wiki.jenkins-ci.org/display/JENKINS/Static+Code+Analysis+Plugins找到

Jenkins代码分析

该插件提供静态代码分析插件的实用程序。Jenkins可以解析各种代码分析工具(例如CheckStyle、FindBugs、PMD等)的结果文件。对于每个相应的代码分析工具,都需要在Jenkins中安装一个插件。

此外,还可以使用附加插件静态分析收集器,它将这些插件的各个结果组合到单个趋势图和视图中。

这些插件可以提供诸如

  • 作业中的警告总数
  • 显示构建的新警告和固定警告
  • 显示每个构建的警告数量的趋势报告
  • 按模块、包、类别或类型找到的警告概述
  • 所发现警告的详细报告,可选择按严重性(或新的和已修复的)进行过滤

Jenkins - 分布式构建

有时,如果存在定期构建更大、更重的项目的情况,则需要许多构建机器。在中央机器上运行所有这些构建可能不是最佳选择。在这种情况下,可以将其他 Jenkins 机器配置为从属机器,以减轻 Jenkins 主服务器的负载。

有时您可能还需要几个不同的环境来测试您的构建。在这种情况下,使用从属设备来代表您所需的每个环境几乎是必须的。

从机是一台被设置为从主机卸载构建项目的计算机,一旦设置完成,任务的分配就相当自动了。确切的委托Behave取决于每个项目的配置;一些项目可能会选择“坚持”到特定的机器进行构建,而其他项目可能会选择在从机之间自由漫游。

由于每个从站运行一个称为“从站代理”的单独程序,因此无需在从站上安装完整的 Jenkins(包或编译的二进制文件)。启动从代理的方式有多种,但最终从代理和 Jenkins master 需要建立双向通信链路(例如 TCP/IP 套接字)才能运行。

要在 Jenkins 中设置从站/节点,请按照以下步骤操作。

步骤 1 - 转到“管理 Jenkins”部分,然后向下滚动到“管理节点”部分。

管理节点

第 2 步- 单击“新节点”

新节点

步骤 3 - 为节点命名,选择哑从属选项,然后单击确定。

哑奴

步骤 4 - 输入节点从机的详细信息。在下面的示例中,我们将从机视为 Windows 机器,因此选择“让 Jenkins 将这个 Windows 从机作为 Windows 服务控制”选项作为启动方法。我们还需要添加从节点的必要详细信息,例如节点名称和节点计算机的登录凭据。单击“保存”按钮。名称输入为“New_Slave”的标签可用于配置作业以使用该从机。

从机1

完成上述步骤后,新节点机器最初将处于离线状态,但如果上一屏幕中的所有设置均正确输入,则会上线。如果需要,可以随时使节点从机离线。

从机2

Jenkins - 自动化部署

有许多可用的插件可用于在成功构建后将构建文件传输到相应的应用程序/Web 服务器。示例是“部署到容器插件”。要使用此功能,请按照以下步骤操作。

步骤 1 - 转到管理 Jenkins → 管理插件。转到可用部分并找到插件“部署到容器插件”并安装该插件。重新启动Jenkins服务器。

部署到容器插件

该插件采用 war/ear 文件并在构建结束时将其部署到正在运行的远程应用程序服务器。

汤姆猫 4.x/5.x/6.x/7.x

JBoss 3.x/4.x

玻璃鱼 2.x/3.x

步骤 2 - 转到您的构建项目并单击配置选项。选择选项“将 war/ear 部署到容器”

将 war Ear 部署到容器

步骤 3 - 在将 war/ear 部署到容器部分中,输入需要部署文件的服务器的所需详细信息,然后单击保存按钮。这些步骤现在将确保在成功构建后将必要的文件部署到必要的容器中。

演示配置

Jenkins - 指标与趋势

Jenkins 中提供了各种插件来展示一段时间内执行的构建的指标。这些指标对于了解您的构建以及它们随着时间的推移失败/通过的频率非常有用。作为示例,让我们看一下“构建历史指标插件”。

安装后,该插件会计算所有构建的以下指标

  • 平均无故障时间 (MTTF)
  • 平均恢复时间 (MTTR)
  • 构建时间的标准差

第 1 步- 转到 Jenkins 仪表板并单击“管理 Jenkins”

欢迎来到Jenkins

步骤 2 - 转到“管理插件”选项。

指标趋势管理插件1

步骤 3 - 转到可用选项卡并搜索插件“构建历史指标插件”并选择“安装而不重新启动”。

无需重新启动即可安装1

步骤 4 - 显示以下屏幕以确认插件安装成功。重新启动 Jenkins 实例。

安装成功确认1

当您转到“职位”页面时,您将看到一个包含计算指标的表格。显示过去 7 天、过去 30 天和所有时间的指标。

指标表

要查看 Jenkins 的总体趋势,可以使用一些插件来从构建和 Jenkins 中收集信息并以图形格式显示它们。此类插件的一个示例是“Hudson global-build-stats 插件”。那么让我们来完成一下步骤。

第 1 步- 转到 Jenkins 仪表板并单击“管理 Jenkins”

Hudson 全球构建统计数据

步骤 2 - 转到“管理插件”选项

指标趋势管理插件2

步骤 3 - 转到“可用”选项卡并搜索插件“Hudson global-build-stats 插件”并选择“安装而不重新启动”。

无需重新启动即可安装2

步骤 4 - 显示以下屏幕以确认插件安装成功。重新启动 Jenkins 实例。

安装成功确认2

要查看全局统计数据,请按照步骤 5 至 8 进行操作。

步骤 5 - 转到 Jenkins 仪表板并单击“管理 Jenkins”。在“管理 Jenkins”屏幕中,向下滚动,现在您将看到一个名为“全局构建统计”的选项。单击此链接。

全局构建统计数据

步骤 6 - 单击“初始化统计数据”按钮。其作用是收集已执行的构建的所有现有记录,并可以根据这些结果创建图表。

初始化统计数据

步骤 7 - 数据初始化后,就可以创建新图表了。单击“创建新图表”链接。

创建新图表

步骤 8 - 将出现一个弹出窗口,输入新图表详细信息的相关信息。输入以下必填信息

  • 标题 - 任何标题信息,在此示例中均以“演示”形式给出
  • 图表宽度 – 800
  • 图表高度 – 600
  • 图表时间刻度 – 每日
  • 图表时间长度 – 30 天

其余信息可以保持原样。输入信息后,单击“创建新图表”。

添加新图表

您现在将看到显示构建随时间变化的趋势的图表。

显示趋势

如果您单击图表中的任何部分,您将可以深入了解作业及其构建的详细信息。

全局构建搜索

Jenkins - 服务器维护

以下是您将执行的一些基本活动,其中一些是 Jenkins 服务器维护的最佳实践

网址选项

以下命令附加到 Jenkins 实例 URL 后将在 Jenkins 实例上执行相关操作。

http://localhost:8080/jenkins/exit - 关闭 jenkins

http://localhost:8080/jenkins/restart - 重新启动 jenkins

http://localhost:8080/jenkins/reload - 重新加载配置

备份 Jenkins 主页

Jenkins 主目录只不过是驱动器上 Jenkins 存储作业、构建等所有信息的位置。当您单击“管理 Jenkins”→“配置系统”时,可以看到主目录的位置。

备份 Jenkins 主页

在具有最多可用磁盘空间的分区上设置 Jenkins – 由于 Jenkins 会获取定义的各种作业的源代码并进行连续构建,因此请始终确保 Jenkins 设置在具有足够硬盘空间的驱动器上。如果您的硬盘空间不足,那么 Jenkins 实例上的所有构建都将开始失败。

另一个最佳实践是编写可以执行清理操作的 cron 作业或维护任务,以避免安装 Jenkins 的磁盘变满。

Jenkins - 持续部署

Jenkins 为提供持续部署和交付提供了良好的支持。如果您查看任何软件开发到部署的流程,将会如下所示。

Jenkins持续部署

持续部署的主要部分是确保上面显示的整个过程是自动化的。Jenkins 通过各种插件实现了所有这些,其中之一是前面课程中看到的“部署到容器插件”。

持续部署容器插件

有一些可用的插件实际上可以为您提供持续部署过程的图形表示。但首先让我们在 Jenkins 中创建另一个项目,以便我们可以最好地了解它是如何工作的。

让我们创建一个模拟 QA 阶段的简单项目,并对 Helloworld 应用程序进行测试。

步骤 1 - 转到 Jenkins 仪表板并单击“新建项目”。选择“Freestyle 项目”并输入项目名称“QA”。单击“确定”按钮创建项目。

自由式项目

步骤 2 - 在此示例中,我们保持简单,仅使用此项目来执行 Helloworld 应用程序的测试程序。

你好世界应用程序

现在我们的项目 QA 已经设置完毕。您可以进行构建以查看其是否正确构建。

质量保证项目构建

步骤 3 - 现在转到您的 Helloworld 项目并单击“配置”选项

项目配置选项

步骤 4 - 在项目配置中,选择“添加构建后操作”,然后选择“构建其他项目”

添加构建后操作

步骤 5 - 在“要构建的项目”部分中,输入 QA 作为要构建的项目名称。您可以将该选项保留为默认值“仅在构建稳定时触发”。单击“保存”按钮。

触发稳定构建

第 6 步- 构建 Helloworld 项目。现在,如果您看到控制台输出,您还会看到在成功构建 Helloworld 项目后,QA 项目的构建也会发生。

QA 项目控制台项目

步骤 7 - 现在安装交付管道插件。转到管理 Jenkins → 管理插件。在可用选项卡中,搜索“交付管道插件”。单击“安装而不重新启动”。完成后,重新启动 Jenkins 实例。

重启 Jenkins 实例

步骤 8 - 要查看正在运行的交付管道,请在 Jenkins 仪表板中单击“全部”选项卡旁边的选项卡中的 + 符号。

输送管道

步骤 9 - 输入视图名称的任意名称,然后选择选项“交付管道视图”。

交付管道视图

步骤 10 - 在下一个屏幕中,您可以保留默认选项。人们可以更改以下设置 -

  • 确保选中“显示静态分析结果”选项。
  • 确保选中“显示总构建时间”选项。
  • 对于初始作业 – 输入 Helloworld 项目作为应构建的第一个作业。
  • 输入管道的任意名称
  • 单击“确定”按钮。
修改设置

现在,您将看到整个交付管道的清晰视图,并且您将能够看到整个管道中每个项目的状态。

各项目状态

另一个著名的插件是构建管道插件。我们来看看这个。

步骤 1 - 转到管理 Jenkins → 管理插件。在可用选项卡中,搜索“构建管道插件”。单击“安装而不重新启动”。完成后,重新启动 Jenkins 实例。

构建管道插件

步骤 2 - 要查看正在运行的构建管道,请在 Jenkins 仪表板中单击“全部”选项卡旁边的选项卡中的 + 符号。

请参阅构建管道操作

步骤 3 - 输入视图名称的任何名称,然后选择选项“构建管道视图”。

构建管道视图

步骤 4 - 接受默认设置,只需在“选定的初始作业”中,确保输入 Helloworld 项目的名称。单击“确定”按钮。

接受默认设置

现在,您将看到整个交付管道的清晰视图,并且您将能够看到整个管道中每个项目的状态。

整个管道状态

Jenkins - 管理插件

要获取 Jenkins 中可用的所有插件的列表,可以访问链接 - https://wiki.jenkins-ci.org/display/JENKINS/Plugins

Jenkins 管理插件

我们已经看到了很多安装插件的实例,让我们看看与插件相关的其他一些维护任务

卸载插件

要卸载插件,请转至管理 Jenkins → 管理插件。单击“已安装”选项卡。某些插件会有卸载选项。您可以单击这些按钮来卸载插件。确保在卸载后重新启动 Jenkins 实例。

卸载插件

安装另一个版本的插件

有时可能需要安装旧版本的插件,在这种情况下,您可以从 Jenkins 网站上的相关插件页面下载该插件。然后,您可以使用“上传”选项手动上传插件。

安装另一个版本插件

Jenkins - 安全

在 Jenkins 中,您可以在 Jenkins 实例上设置用户及其相关权限。默认情况下,您不希望每个人都能够在 Jenkins 中定义作业或其他管理任务。因此 Jenkins 有能力进行适当的安全配置。

要在 Jenkins 中配置安全性,请按照以下步骤操作。

步骤 1 - 单击“管理 Jenkins”并选择“配置全局安全性”选项。

配置全局安全

步骤 2 - 单击启用安全选项。举个例子,假设我们希望 Jenkins 维护自己的用户数据库,因此在安全领域中,选择“Jenkins 自己的用户数据库”选项。

默认情况下,您希望中​​央管理员在系统中定义用户,因此请确保未选择“允许用户注册”选项。您可以暂时保留其余部分,然后单击“保存”按钮。

启用安全选项

步骤 3 - 系统将提示您添加第一个用户。例如,我们正在为系统设置管理员用户。

管理员用户

步骤 4 - 现在是时候在系统中设置用户了。现在,当您转到“管理 Jenkins”并向下滚动时,您将看到“管理用户”选项。单击此选项。

管理用户

步骤 5 - 就像您定义管理员用户一样,开始为系统创建其他用户。例如,我们只是创建另一个名为“user”的用户。

用户

步骤 6 - 现在是时候设置您的授权了,基本上谁有权访问什么。转到管理 Jenkins → 配置全局安全性。

现在在“授权”部分中,单击“基于矩阵的安全性”

授权部分

步骤 7 - 如果您在用户组列表中没有看到该用户,请输入用户名并将其添加到列表中。然后给予用户适当的权限。

定义相关授权后,单击“保存”按钮。

您的 Jenkins 安全性现已设置。

- 对于 Windows AD 身份验证,必须将 Active Directory 插件添加到 Jenkins。

Jenkins - 备份插件

Jenkins 有一个备份插件,可用于备份与 Jenkins 相关的关键配置设置。请按照下面给出的步骤进行备份。

步骤 1 - 单击“管理 Jenkins”并选择“管理插件”选项。

管理备份插件

步骤 2 - 在可用选项卡中,搜索“备份插件”。单击“安装而不重新启动”。完成后,重新启动 Jenkins 实例

备份插件1 备份插件2

步骤 3 - 现在,当您转到“管理 Jenkins”并向下滚动时,您将看到“备份管理器”选项。单击此选项。

备份管理器

步骤 4 - 单击“设置”。

备份管理器设置

步骤 5 - 在这里,要定义的主要字段是备份目录。确保它位于与设置 Jenkins 实例的驱动器不同的另一个驱动器上。单击“保存”按钮。

备份配置文件

步骤 6 - 从备份管理器屏幕单击“备份 Hudson 配置”以启动备份。

备份 Hudson 配置

下一个屏幕将显示备份的状态

备份状态

要从备份恢复,请转至备份管理器屏幕,单击恢复 Hudson 配置。

恢复 Hudson 配置

将显示备份列表,单击相应的备份,然后单击启动恢复以开始恢复备份。

备份恢复

Jenkins - 远程测试

Web 测试(例如 selenium 测试)可以通过主从机和 selenium 套件插件安装在远程从机上运行。以下步骤显示如何使用此配置运行远程测试。

步骤 1 - 确保您的主从配置到位。转到您的 Jenkins 主服务器。转到管理 Jenkins → 管理节点。

Jenkins远程测试

在我们的节点列表中,DXBMEM30标签是从机。在这个例子中,主机和从机都是windows机器。

节点列表

步骤 2 - 单击 DXBMEM30 从机的配置。

配置从机

步骤 3 - 确保启动方法设置为“通过 Java Web Start 启动从属代理”

启动从属代理

步骤 4 - 现在转到您的从机,然后从那里打开 Jenkins 主实例的浏览器实例。然后转到管理 Jenkins → 管理节点。转到 DXBMEM30 并单击

远程测试管理节点

步骤 5 - 单击 DXBMEM30 实例。

DXBMEM30 实例

步骤 6 - 向下滚动,您将看到“启动”选项,即启动“Java Web Start”的选项

Java网络启动

步骤 7 - 您将看到安全警告。单击“接受”复选框,然后单击“运行”。

安全警告

您现在将看到 Jenkins Slave 窗口打开并已连接。

Jenkins 从属窗口已连接

步骤 8 - 配置测试以在从属设备上运行。在这里,您必须确保正在创建的作业专门用于运行Selenium测试。

在作业配置中,确保选择“限制此项目可以运行的位置”选项,并在标签表达式中输入从节点的名称。

配置

步骤 9 - 确保您的作业的Selenium部分已配置。您必须确保 Sample.html 文件和 selenium-server.jar 文件也存在于从属计算机上。

配置Selenium

完成上述所有步骤并单击“构建”后,该项目将按预期在从机上运行 Selenium 测试。