- Jenkins 教程
- Jenkins - 首页
- Jenkins - 概述
- Jenkins - 安装
- Jenkins - Tomcat 设置
- Jenkins - Git 设置
- Jenkins - Maven 设置
- Jenkins - 配置
- Jenkins - 管理
- Jenkins - 设置构建任务
- Jenkins - 单元测试
- Jenkins - 自动化测试
- Jenkins - 通知
- Jenkins - 报告
- Jenkins - 代码分析
- Jenkins - 分布式构建
- Jenkins - 自动化部署
- Jenkins - 指标和趋势
- Jenkins - 服务器维护
- Jenkins - 持续部署
- Jenkins - 插件管理
- Jenkins - 安全
- Jenkins - 备份插件
- Jenkins - 远程测试
- Jenkins 有用资源
- Jenkins 快速指南
- Jenkins - 有用资源
- Jenkins - 讨论
Jenkins 快速指南
Jenkins - 概述
为什么选择 Jenkins?
Jenkins 是一款允许**持续集成**的软件。Jenkins 将安装在进行中心构建的服务器上。下图演示了 Jenkins 工作原理的一个非常简单的流程。
除了 Jenkins,有时您还会看到与**Hudson**相关的联想。Hudson 是一个非常流行的开源基于 Java 的持续集成工具,由 Sun Microsystems 开发,后来被 Oracle 收购。在 Oracle 收购 Sun 之后,从 Hudson 源代码创建了一个分支,从而引入了 Jenkins。
什么是持续集成?
持续集成是一种开发实践,要求开发人员定期将代码集成到共享存储库中。这个概念旨在消除在构建生命周期中后期发现问题的难题。持续集成要求开发人员频繁构建。常见的做法是,每当发生代码提交时,都应该触发构建。
系统要求
| JDK | JDK 1.5 或更高版本 |
| 内存 | 2 GB RAM(推荐) |
| 磁盘空间 | 无最低要求。请注意,由于所有构建都将存储在 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 官方网站的首页,如下所示。
默认情况下,最新版本和长期支持版本将可用下载。过去的版本也可以下载。点击下载部分中的“长期支持版本”选项卡。
点击“较旧但稳定的版本”链接下载 Jenkins war 文件。
启动 Jenkins
打开命令提示符。在命令提示符下,浏览到 jenkins.war 文件所在的目录。运行以下命令:
D:\>Java –jar Jenkins.war
命令运行后,将运行各种任务,其中一项是通过名为 winstone 的嵌入式 Web 服务器提取 war 文件。
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:https://:8080
此链接将显示 Jenkins 仪表板。
Jenkins – Tomcat 设置
Jenkins Tomcat 设置必须满足以下先决条件。
步骤 1:验证 Java 安装
要验证 Java 安装,请打开控制台并执行以下 java 命令。
| 操作系统 | 任务 | 命令 |
|---|---|---|
| Windows | 打开命令控制台 | >java –version |
| Linux | 打开命令终端 | $java –version |
如果 Java 已正确安装在您的系统上,则您应该获得以下输出之一,具体取决于您正在使用的平台。
| 操作系统 | 输出 |
|---|---|
| Windows |
Java version "1.7.0_60" Java(TM) SE Runtime Environment (build 1.7.0_60-b19) Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode) |
| Linux |
java version "1.7.0_25" OpenJDK Runtime Environment (rhel-2.3.10.4.el6_4-x86_64) OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode) |
在继续本教程之前,我们假设本教程的读者已在其系统上安装了 Java 1.7.0_60。
如果您没有 Java JDK,您可以从以下链接下载:Oracle
步骤 2:验证 Java 安装
设置 JAVA_HOME 环境变量以指向 Java 安装在您计算机上的基本目录位置。例如:
| 操作系统 | 输出 |
|---|---|
| Windows | 将环境变量 JAVA_HOME 设置为 C:\ProgramFiles\java\jdk1.7.0_60 |
| Linux | export JAVA_HOME=/usr/local/java-current |
将 Java 编译器位置的完整路径附加到系统路径。
| 操作系统 | 输出 |
|---|---|
| Windows | 将字符串;C:\Program Files\Java\jdk1.7.0_60\bin 附加到系统变量 PATH 的末尾。 |
| Linux | export PATH=$PATH:$JAVA_HOME/bin/ |
如上所述,从命令提示符验证命令 java-version。
步骤 3:下载 Tomcat
Tomcat 的官方网站是 Tomcat。如果您点击给定的链接,您将获得 Tomcat 官方网站的首页,如下所示。
浏览到链接 https://tomcat.net.cn/download-70.cgi 以获取 Tomcat 的下载。
转到“二进制分发”部分。下载 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
打开浏览器并访问以下链接:https://:8080/jenkins。Jenkins 将在 Tomcat 上运行。
Jenkins - Git 设置
对于此练习,您必须确保从安装 Jenkins 的机器上存在互联网连接。在您的 Jenkins 仪表板(主屏幕)中,点击左侧的“管理 Jenkins”选项。
在下一个屏幕中,点击“管理插件”选项。
在下一个屏幕中,点击“可用”选项卡。此选项卡将列出可供下载的插件。在“筛选”选项卡中,键入“Git 插件”。
然后将过滤列表。选中 Git 插件选项,然后点击“无需重启安装”按钮。
然后安装将开始,屏幕将刷新以显示下载状态。
所有安装完成后,通过在浏览器中发出以下命令重新启动 Jenkins:https://:8080/jenkins/restart
Jenkins 重新启动后,在配置作业时,Git 将作为选项可用。要验证,请点击 Jenkins 菜单选项中的“新建 Item”。然后为作业输入名称,在本例中,输入的名称为“Demo”。选择“自由风格项目”作为项目类型。点击“确定”按钮。
在下一个屏幕中,如果您浏览到“源代码管理”部分,您现在将看到“Git”作为选项。
Jenkins – Maven 设置
步骤 1:下载和设置 Maven
Maven 的官方网站是 Apache Maven。如果您点击给定的链接,您将获得 Maven 官方网站的首页,如下所示。
浏览到该站点时,转到“文件”部分并下载到 Binary.zip 文件的链接。
下载文件后,将文件提取到相关的应用程序文件夹。为此,maven 文件将放置在 E:\Apps\apache-maven-3.3.3 中。
步骤 2:设置 Jenkins 和 Maven
在 Jenkins 仪表板(主屏幕)中,从左侧菜单点击“管理 Jenkins”。
然后,点击右侧的“系统配置”。
在“系统配置”屏幕中,向下滚动到您看到 Maven 部分,然后点击“添加 Maven”按钮。
取消选中“自动安装”选项。
添加任何设置名称和 MAVEN_HOME 的位置。
然后,点击屏幕末尾的“保存”按钮。
您现在可以使用“Maven 项目”选项创建一个作业。在 Jenkins 仪表板中,点击“新建 Item”选项。
Jenkins - 配置
您可能在之前的练习中多次看到过,我们需要在 Jenkins 中配置选项。以下是 Jenkins 中各种配置选项。
因此,您可以通过从左侧菜单点击“管理 Jenkins”选项来获取 Jenkins 的各种配置选项。
然后将显示以下屏幕:
点击“系统配置”。下面讨论了一些可以执行的 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 机器上同时执行的作业总数。这可以根据需要更改。有时建议将此数字保持与机器上的 CPU 数量相同,以获得更好的性能。
环境变量
这用于添加将应用于所有作业的自定义环境变量。这些是键值对,可以在需要时在构建中访问和使用。
Jenkins URL
默认情况下,Jenkins URL 指向 localhost。如果您为您的机器设置了域名,请将其设置为域名,否则使用机器的 IP 覆盖 localhost。这将有助于设置从站以及使用电子邮件发送链接,因为您可以使用环境变量 JENKINS_URL 直接访问 Jenkins URL,该变量可以访问为 ${JENKINS_URL}。
电子邮件通知
在电子邮件通知区域,您可以配置用于发送电子邮件的 SMTP 设置。Jenkins 需要此设置才能连接到 SMTP 邮件服务器并将电子邮件发送到收件人列表。
Jenkins - 管理
要管理 Jenkins,请从左侧菜单点击“管理 Jenkins”选项。
因此,您可以通过从左侧菜单点击“管理 Jenkins”选项来获取 Jenkins 的各种配置选项。
然后将显示以下屏幕:
一些管理选项如下:
系统配置
在这里可以管理构建中使用的各种工具的路径,例如 JDK、Ant 和 Maven 的版本,以及安全选项、电子邮件服务器和其他系统范围的配置详细信息。安装插件后,Jenkins 将在插件安装后动态添加所需的配置字段。
从磁盘重新加载配置
Jenkins 将其所有系统和构建作业配置详细信息存储为 XML 文件,这些文件存储在 Jenkins 主目录中。所有构建历史记录也存储在这里。如果您要将构建作业从一个 Jenkins 实例迁移到另一个实例,或存档旧的构建作业,则需要向 Jenkins 的构建目录添加或删除相应的构建作业目录。您无需为此使 Jenkins 脱机——您可以简单地使用“从磁盘重新加载配置”选项直接重新加载 Jenkins 系统和构建作业配置。
管理插件
在这里,您可以直接从不同的源代码管理工具(例如 Git、Mercurial 或 ClearCase)安装各种第三方插件,到代码质量和代码覆盖率指标报告。可以通过“管理插件”屏幕安装、更新和删除插件。
系统信息
此屏幕显示当前所有 Java 系统属性和系统环境变量的列表。在这里,您可以准确检查 Jenkins 运行的 Java 版本、运行的用户等等。
以下屏幕截图显示了此部分中提供的一些名称值信息。
系统日志
系统日志屏幕是实时查看 Jenkins 日志文件的便捷方式。同样,此屏幕的主要用途是进行故障排除。
负载统计
此页面显示关于 Jenkins 实例有多繁忙的图形数据,包括并发构建的数量和构建队列的长度,这可以了解您的构建需要等待多长时间才能执行。这些统计数据可以很好地了解从基础架构的角度来看是否需要额外的容量或额外的构建节点。
脚本控制台
此屏幕允许您在服务器上运行 Groovy 脚本。它对于高级故障排除非常有用,因为它需要强大的内部 Jenkins 架构知识。
管理节点
Jenkins 能够处理并行和分布式构建。在此屏幕中,您可以配置所需的构建数量。Jenkins 同时运行,如果您使用分布式构建,则设置构建节点。构建节点是 Jenkins 可以用来执行其构建的另一台机器。
准备关机
如果需要关闭 Jenkins 或 Jenkins 运行的服务器,最好不要在执行构建时这样做。要干净地关闭 Jenkins,您可以使用“准备关机”链接,这可以防止启动任何新的构建。最终,当所有当前构建完成后,就可以干净地关闭 Jenkins 了。
Jenkins - 设置构建任务
在本练习中,我们将在 Jenkins 中创建一个作业,该作业获取一个简单的 HelloWorld 应用程序,构建并运行 Java 程序。
步骤 1 - 转到 Jenkins 仪表板并单击“新建 Item”
步骤 2 - 在下一个屏幕中,输入 Item 名称,在本例中我们将其命名为 Helloworld。选择“自由风格项目”选项
步骤 3 - 将出现以下屏幕,您可以在其中指定作业的详细信息。
步骤 4 - 我们需要指定需要构建的文件的位置。在本例中,我们假设已设置了一个本地 git 存储库 (E:\Program),其中包含一个 'HelloWorld.java' 文件。因此,向下滚动并单击 Git 选项,然后输入本地 git 存储库的 URL。
注意 - 如果您的存储库托管在 Github 上,您也可以在此处输入该存储库的 url。除此之外,您还需要单击凭据的“添加”按钮,为 github 存储库添加用户名和密码,以便可以从远程存储库获取代码。
步骤 5 - 现在转到“构建”部分,然后单击“添加构建步骤”→“执行 Windows 批处理命令”
步骤 6 - 在命令窗口中,输入以下命令,然后单击“保存”按钮。
Javac HelloWorld.java Java HelloWorld
步骤 7 - 保存后,您可以单击“立即构建”选项以查看是否已成功定义作业。
步骤 8 - 安排构建后,它将运行。“构建历史记录”部分显示正在进行构建。
步骤 9 - 构建完成后,将显示构建的状态,说明构建是否成功。在本例中,以下构建已成功执行。单击构建历史记录中的 #1 以显示构建的详细信息。
步骤 10 - 单击“控制台输出”链接以查看构建的详细信息
除了上面显示的步骤之外,还有很多方法可以创建构建作业,可用的选项很多,这就是使 Jenkins 成为如此出色的持续部署工具的原因。
Jenkins - 单元测试
Jenkins 提供了 Junit 的开箱即用功能,并为其他技术的单元测试提供了一系列插件,例如 .Net 单元测试的 MSTest。如果您访问链接 https://wiki.jenkins-ci.org/display/JENKINS/xUnit+Plugin,它将列出可用的单元测试插件。
Jenkins 中 Junit 测试示例
以下示例将考虑
- 基于 Junit 的简单的 HelloWorldTest 类。
- 在 Jenkins 中使用 Ant 作为构建工具来相应地构建类。
步骤 1 - 转到 Jenkins 仪表板,单击现有的 HelloWorld 项目,然后选择“配置”选项
步骤 2 - 浏览到“添加构建步骤”部分,然后选择“调用 Ant”选项。
步骤 3 - 单击“高级”按钮。
步骤 4 - 在“构建文件”部分,输入 build.xml 文件的位置。
步骤 5 - 接下来,单击“添加构建后操作”选项,然后选择“发布 Junit 测试结果报告”选项
步骤 6 - 在“测试报告 XML”中,输入如下所示的位置。确保 Reports 是在 HelloWorld 项目工作区中创建的文件夹。“*.xml”基本上告诉 Jenkins 获取运行 Junit 测试用例时生成的 result xml 文件。然后可以将这些 xml 文件转换为稍后可以查看的报告。
完成后,单击最后的“保存”选项。
步骤 7 - 保存后,您可以单击“立即构建”选项。
构建完成后,将显示构建的状态,说明构建是否成功。在构建输出信息中,您现在将注意到一个名为“测试结果”的附加部分。在本例中,我们输入了一个失败的测试用例,以便结果失败,仅作为示例。
您可以转到“控制台输出”以查看更多信息。但更有趣的是,如果您单击“测试结果”,您现在将看到测试结果的详细分解。
Jenkins - 自动化测试
持续集成的基本原则之一是构建应该是可验证的。您必须能够客观地确定特定构建是否已准备好继续构建过程的下一阶段,最方便的方法是使用自动化测试。如果没有适当的自动化测试,您会发现自己不得不保留许多构建工件并手动测试它们,这几乎不符合持续集成的精神。以下示例显示了如何使用 Selenium 运行自动化 Web 测试。
步骤 1 - 转到“管理插件”。
步骤 2 - 找到 Hudson Selenium 插件并选择安装。重新启动 Jenkins 实例。
步骤 3 - 转到“配置系统”。
步骤 4 - 配置 selenium 服务器 jar 并单击“保存”按钮。
注意 - selenium jar 文件可以从以下位置下载 SeleniumHQ
单击 Selenium 独立服务器的下载链接。
步骤 5 - 返回仪表板,然后单击 HelloWorld 项目的“配置”选项。
步骤 6 - 单击“添加构建步骤”,然后选择“SeleniumHQ htmlSuite Run”选项
步骤 7 - 添加 selenium 测试的必要详细信息。这里的 suiteFile 是使用 Selenium IDE 生成的 TestSuite。单击“保存”并执行构建。现在,构建后操作将启动 selenium 驱动程序并执行 html 测试。
Jenkins - 通知
Jenkins 带有一个开箱即用的功能,可以为构建项目添加电子邮件通知。
步骤 1 - 配置 SMTP 服务器。转到“管理 Jenkins”→“配置系统”。转到“电子邮件通知”部分,然后输入所需的 SMTP 服务器和用户电子邮件后缀详细信息。
步骤 2 - 在 Jenkins 项目中配置收件人 - 配置任何 Jenkins 构建项目时,最后可以添加收件人,这些收件人将收到不稳定或中断构建的电子邮件通知。然后单击“保存”按钮。
除了默认设置外,市场上还提供通知插件。例如,来自 Tikal Knowledge 的通知插件允许以 JSON 和 XML 格式发送作业状态通知。此插件允许配置端点,如下所示。
以下是每个选项的详细信息:
“格式” - 这是通知有效负载格式,可以是 JSON 或 XML。
“协议” - 用于发送通知消息的协议,HTTP、TCP 或 UDP。
“事件” - 触发通知的作业事件:作业已启动、作业已完成、作业已完成或所有事件(默认选项)。
“URL” - 用于发送通知的 URL。它采用以下形式:http://host(对于 HTTP 协议)和
"host:port"(对于 TCP 和 UDP 协议)。“超时” - 发送通知请求的超时时间(毫秒),默认为 30 秒。
Jenkins - 报告
如前面部分所示,有很多报告插件可用,最简单的就是 Junit 测试的报告。
在任何作业的“构建后操作”中,您可以定义要创建的报告。构建完成后,“测试结果”选项将可用,以便进一步深入分析。
Jenkins - 代码分析
Jenkins 有许多代码分析插件。可以在以下网址找到各种插件:https://wiki.jenkins-ci.org/display/JENKINS/Static+Code+Analysis+Plugins
此插件为静态代码分析插件提供实用程序。Jenkins 可以解析来自各种代码分析工具(如 CheckStyle、FindBugs、PMD 等)的结果文件。对于每个相应的代码分析工具,都需要安装 Jenkins 中的插件。
此外,还提供了附加插件 静态分析收集器,它可以将这些插件的单个结果组合到单个趋势图和视图中。
插件可以提供以下信息:
- 作业中的警告总数
- 显示构建的新警告和已修复的警告
- 趋势报告,显示每个构建的警告数量
- 按模块、包、类别或类型查找的警告概述
- 详细报告找到的警告,可以选择按严重性(或新警告和已修复警告)进行筛选
Jenkins - 分布式构建
如果存在定期构建的较大、较重的项目,有时需要许多构建机器。在中央机器上运行所有这些构建可能不是最佳选择。在这种情况下,可以配置其他 Jenkins 机器作为从属机器,以减轻主 Jenkins 服务器的负载。
有时您可能还需要几个不同的环境来测试您的构建。在这种情况下,使用从属机器来表示每个所需的环境几乎是必须的。
从属机器是从主服务器卸载构建项目并进行设置的计算机,一旦设置完成,任务分配就相当自动化。确切的委派行为取决于每个项目的配置;一些项目可能选择“坚持”使用特定机器进行构建,而其他项目则可以选择在从属机器之间自由漫游。
由于每个从属机器都运行一个名为“从属代理”的单独程序,因此无需在从属机器上安装完整的 Jenkins(软件包或编译后的二进制文件)。启动从属代理的方法有很多种,但最终从属代理和 Jenkins 主服务器需要建立双向通信链路(例如 TCP/IP 套接字)才能运行。
要在 Jenkins 中设置从属机器/节点,请按照以下步骤操作。
步骤 1 - 转到“管理 Jenkins”部分,向下滚动到“管理节点”部分。
步骤 2 - 点击“新建节点”。
步骤 3 - 为节点命名,选择“哑从属”选项,然后点击“确定”。
步骤 4 - 输入从属机器的详细信息。在下面的示例中,我们认为从属机器是 Windows 机器,因此选择“让 Jenkins 将此 Windows 从属机器作为 Windows 服务控制”作为启动方法。我们还需要添加从属节点的必要详细信息,例如节点名称和节点机器的登录凭据。点击“保存”按钮。输入名称为“New_Slave”的标签可用于配置使用此从属机器的作业。
完成上述步骤后,新的节点机器最初将处于脱机状态,但如果先前屏幕中的所有设置都正确输入,则将联机。如果需要,可以随时使节点从属机器脱机。
Jenkins - 自动化部署
有很多插件可用,这些插件可用于在成功构建后将构建文件传输到相应的应用程序/Web 服务器。“部署到容器插件”就是一个示例。要使用此插件,请按照以下步骤操作。
步骤 1 - 转到“管理 Jenkins”→“管理插件”。转到“可用”部分,找到插件“部署到容器插件”,然后安装该插件。重新启动 Jenkins 服务器。
此插件获取 war/ear 文件,并在构建结束时将其部署到正在运行的远程应用程序服务器。
Tomcat 4.x/5.x/6.x/7.x
JBoss 3.x/4.x
Glassfish 2.x/3.x
步骤 2 - 转到您的构建项目并单击“配置”选项。选择“将 war/ear 部署到容器”选项。
步骤 3 - 在“将 war/ear 部署到容器”部分中,输入需要将文件部署到的服务器的必要详细信息,然后单击“保存”按钮。这些步骤现在将确保在成功构建后将必要的文件部署到必要的容器。
Jenkins - 指标和趋势
Jenkins 中有各种插件可用于展示一段时间内执行的构建的指标。这些指标有助于了解您的构建以及它们随着时间的推移失败/通过的频率。例如,让我们看看“构建历史指标插件”。
安装此插件后,它将计算所有构建的以下指标:
- 平均故障时间 (MTTF)
- 平均恢复时间 (MTTR)
- 构建时间的标准差
步骤 1 - 转到 Jenkins 仪表板并单击“管理 Jenkins”。
步骤 2 - 转到“管理插件”选项。
步骤 3 - 转到“可用”选项卡,搜索插件“构建历史指标插件”,然后选择“无需重启安装”。
步骤 4 - 将显示以下屏幕以确认插件已成功安装。重新启动 Jenkins 实例。
转到您的作业页面时,您将看到一个包含计算指标的表格。指标显示过去 7 天、过去 30 天和所有时间的数据。
要查看 Jenkins 中的总体趋势,可以使用插件从构建和 Jenkins 内部收集信息并以图形格式显示它们。“Hudson 全局构建统计信息插件”就是这样一个插件的示例。因此,让我们逐步完成此操作。
步骤 1 - 转到 Jenkins 仪表板并单击“管理 Jenkins”。
步骤 2 - 转到“管理插件”选项。
步骤 3 - 转到“可用”选项卡,搜索插件“Hudson 全局构建统计信息插件”,然后选择“无需重启安装”。
步骤 4 - 将显示以下屏幕以确认插件已成功安装。重新启动 Jenkins 实例。
要查看全局统计信息,请按照步骤 5 到步骤 8 操作。
步骤 5 - 转到 Jenkins 仪表板并单击“管理 Jenkins”。在“管理 Jenkins”屏幕中,向下滚动,您现在将看到一个名为“全局构建统计信息”的选项。单击此链接。
步骤 6 - 单击“初始化统计信息”按钮。此操作将收集已执行构建的所有现有记录,并可以根据这些结果创建图表。
步骤 7 - 初始化数据后,就可以创建新图表了。单击“创建新图表”链接。
步骤 8 - 将弹出一个窗口,用于输入新图表详细信息的相关信息。输入以下必填信息:
- 标题 - 任何标题信息,此示例中给定为“演示”
- 图表宽度 - 800
- 图表高度 - 600
- 图表时间刻度 - 每日
- 图表时间长度 - 30 天
其余信息可以保持不变。输入信息后,单击“创建新图表”。
您现在将看到显示构建随时间推移趋势的图表。
如果单击图表中的任何部分,它将提供作业及其构建详细信息的深入分析。
Jenkins - 服务器维护
以下是您将执行的一些基本活动,其中一些是 Jenkins 服务器维护的最佳实践。
URL 选项
将以下命令附加到 Jenkins 实例 URL 时,将对 Jenkins 实例执行相关操作。
https://:8080/jenkins/exit - 关闭 Jenkins
https://:8080/jenkins/restart - 重新启动 Jenkins
https://:8080/jenkins/reload - 重新加载配置
备份 Jenkins 主目录
Jenkins 主目录只不过是驱动器上 Jenkins 存储所有作业、构建等信息的位置。单击“管理 Jenkins”→“配置系统”即可查看主目录的位置。
在具有最多可用磁盘空间的分区上设置 Jenkins - 由于 Jenkins 将获取为定义的各种作业提供的源代码并进行持续构建,因此始终确保 Jenkins 设置在具有足够硬盘空间的驱动器上。如果硬盘空间不足,则 Jenkins 实例上的所有构建都将开始失败。
另一个最佳实践是编写 cron 作业或维护任务,这些作业或任务可以执行清理操作,以避免 Jenkins 设置所在的磁盘变满。
Jenkins - 持续部署
Jenkins 为提供持续部署和交付提供了良好的支持。如果您查看任何软件开发到部署的流程,它将如下所示。
持续部署的主要部分是确保上述整个过程自动化。Jenkins 通过各种插件实现了所有这一切,其中一个是在前面的课程中看到的“部署到容器插件”。
有一些插件实际上可以提供持续部署过程的图形表示。但首先让我们在 Jenkins 中创建另一个项目,以便我们能够最好地了解它的工作原理。
让我们创建一个模拟 QA 阶段并对 Helloworld 应用程序进行测试的简单项目。
步骤 1 - 转到 Jenkins 仪表板并单击“新建项目”。选择“自由风格项目”,并将项目名称输入为“QA”。单击“确定”按钮以创建项目。
步骤 2 - 在此示例中,我们保持简单,仅使用此项目来执行 Helloworld 应用程序的测试程序。
因此,我们的 QA 项目现已设置完成。您可以进行构建以查看其是否正确构建。
步骤 3 - 现在转到您的 Helloworld 项目并单击“配置”选项。
步骤 4 - 在项目配置中,选择“添加构建后操作”,然后选择“构建其他项目”。
步骤 5 - 在“要构建的项目”部分中,输入 QA 作为要构建的项目名称。您可以将选项保留为“仅在构建稳定时触发”的默认值。单击“保存”按钮。
步骤 6 - 构建 Helloworld 项目。现在,如果您查看控制台输出,您还将看到在成功构建 Helloworld 项目后,QA 项目的构建也将发生。
步骤 7 - 现在让我们安装交付流水线插件。转到“管理 Jenkins”→“管理插件”。在“可用”选项卡中,搜索“交付流水线插件”。单击“无需重启安装”。完成后,重新启动 Jenkins 实例。
步骤 8 - 要查看交付流水线运行情况,请在 Jenkins 仪表板中单击“全部”选项卡旁边的选项卡中的“+”符号。
步骤 9 - 输入视图名称的任何名称,然后选择“交付流水线视图”选项。
步骤 10 - 在下一个屏幕中,您可以保留默认选项。可以更改以下设置:
- 确保选中“显示静态分析结果”选项。
- 确保选中“显示总构建时间”选项。
- 对于初始作业 - 输入 Helloworld 项目作为应构建的第一个作业。
- 输入流水线的任何名称。
- 单击“确定”按钮。
您现在将看到整个交付流水线的清晰视图,并且能够看到整个流水线中每个项目的状态。
另一个著名的插件是构建流水线插件。让我们来看看这个。
步骤 1 − 前往“管理 Jenkins” → “管理插件”。在“可用”选项卡中,搜索“Build Pipeline Plugin”。单击“无需重启安装”。完成后,重启 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 中的安全设置,请按照以下步骤操作。
步骤 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 实例。
步骤 3 − 现在,当您转到“管理 Jenkins”并向下滚动时,您将看到“备份管理器”选项。单击此选项。
步骤 4 − 单击“设置”。
步骤 5 − 在这里,主要需要定义的是备份目录。确保它位于与 Jenkins 实例设置所在的驱动器不同的另一个驱动器上。单击“保存”按钮。
步骤 6 − 在“备份管理器”屏幕上单击“备份 Hudson 配置”以启动备份。
下一个屏幕将显示备份状态。
要从备份中恢复,请转到“备份管理器”屏幕,单击“恢复 Hudson 配置”。
将显示备份列表,单击相应的备份,然后单击“启动恢复”以开始恢复备份。
Jenkins - 远程测试
例如 Selenium 测试之类的 Web 测试可以通过主从和 Selenium 套件插件安装在远程从属机器上运行。以下步骤说明如何使用此配置运行远程测试。
步骤 1 − 确保您的主从配置已就绪。转到您的主 Jenkins 服务器。转到“管理 Jenkins” → “管理节点”。
在我们的节点列表中,DXBMEM30 标签是从属机器。在此示例中,主从机器都是 Windows 机器。
步骤 2 − 单击 DXBMEM30 从属机器的“配置”。
步骤 3 − 确保启动方法设置为“通过 Java Web Start 启动从属代理”。
步骤 4 − 现在转到您的从属机器,然后从那里打开浏览器实例到您的 Jenkins 主实例。然后转到“管理 Jenkins” → “管理节点”。转到 DXBMEM30 并单击
步骤 5 − 单击 DXBMEM30 实例。
步骤 6 − 向下滚动,您将看到“启动”选项,这是启动“Java Web Start”的选项。
步骤 7 − 您将看到一个安全警告。单击接受复选框,然后单击运行。
您现在将看到一个 Jenkins 从属窗口打开并已连接。
步骤 8 − 配置在从属服务器上运行的测试。在这里,您必须确保创建的作业专门用于运行 Selenium 测试。
在作业配置中,确保选中“限制此项目可在何处运行”选项,并在标签表达式中输入从属节点的名称。
步骤 9 − 确保您的作业的 Selenium 部分已配置。您必须确保 Sample.html 文件和 selenium-server.jar 文件也存在于从属机器上。
完成上述所有步骤后,单击“构建”,此项目将按预期在从属机器上运行 Selenium 测试。