Jenkins 持续部署【附实例】

已发表: 2020-12-28

Jenkins 部署是复杂自动化软件开发的加速过程。 本文阐明了 Jenkins 如何集成所有开发生命周期流程或 DevOps 阶段,例如在多个组织中实践的构建、记录、测试、打包、暂存、部署、静态分析等等。

如今,许多组织都在其产品中采用 DevOps。 在软件开发生命周期中,您必须将软件作为项目的一部分不断发布。

诸如 Jenkins 之类的工具因其允许应用程序持续集成和交付而不受平台限制的潜力而广受欢迎。 Jenkins 是一个免费且单一的源工具,可以处理Jenkins 部署中的任何类型的构建,本文将对此进行讨论。

Jenkins 可以与许多测试和部署技术集成。 本文描述了 Jenkins 如何用于持续构建和测试您的软件项目。

从世界顶级大学学习软件工程在线课程获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

因此,在深入了解 Jenkins 的工作原理之前,我们需要了解以下作为学习 Jenkins 基础的主题:

  • 持续部署
  • 持续交付与持续部署
  • Jenkins 部署的一个实际例子
  • Jenkins 部署的好处

让我们一一来看看吧!

目录

持续部署

在持续部署中,软件在生产服务器上持续自动化发布。 代码通过源代码编译、验证、审查、打包应用程序以及执行单元测试和集成测试等阶段。

然后在执行用户验收测试时将代码部署在测试服务器上。 该软件将部署在生产服务器上以进行软件发布。 阅读有关与 jenkins 的持续集成的信息。

持续交付与持续部署

持续交付和持续部署是 SDLC 的两个关键阶段,其中持续交付不会部署到生产中以进行任何更改。 开发人员需要确保代码始终可部署,并在需要时进行部署。

形象学分

持续部署需要自动部署每个更改,无需任何人工仲裁。

在上图中,持续集成阶段完成后,构建的应用程序会自动部署到生产服务器上,这不过是持续部署。

或者,如果我们需要人工批准来部署新版本以使一切自动化,我们正在执行持续交付。

由于这个核心差异,有几个含义使每个过程适合不同的情况。

詹金斯

Jenkins 是一个开源工具,它通过用于持续构建和测试软件项目的自动化服务器加速软件流程,为开发人员提供 CI/CD 环境。 它是用 Java 编写的,因此非常便携。

Jenkins 有数以千计的插件和集成。 因此,它适用于需要大量定制的大型项目。 它支持版本控制工具,例如 Git、Maven、Mercurial 和 Subversion。

Jenkins 部署的一个实际例子

既然我们已经了解了 Jenkins 是一种什么样的工具,并且可以应用于持续部署的软件开发过程,那么现在让我们看看它在生产环境中是如何工作的。

首先,将 Jenkins 设置在服务器上,并添加客户端项目以进行构建和测试。 然后客户端可以下载经过测试的应用程序。 将项目资产部署到服务器上的新位置可能会很棘手。

为此,我们首先假设在 Jenkins 上设置了一个客户端项目,并链接到您的版本控制系统。

第 1 步:创建 Jenkins 项

从主菜单中,选择“新项目”并为其命名。 它将文件从您的客户端项目导出到服务器文件夹。

第 2 步:创建构建后操作

转到客户端项目并选择配置。 现在,发起构建后操作并从下拉菜单中选择“归档工件”。 添加要归档和导出的文件类型。

在此之后,附加另一个构建后操作,“构建其他项目”并输入之前创建的构建项。

档案

第 3 步:安装插件“复制工件”

第三步,您将安装 Jenkins 的“Copy Artifact 插件”。

转到“项目名称”以配置和添加构建步骤。 安装 Copy Artifact 插件后,您将看到“从另一个项目复制工件”选项。 指定文件夹以复制工件并设置位置路径。

将位置设置为“var/www/clients/..”。 这将在服务器上创建一个新文件夹。 使用 HTTP 地址 (!) 指定路径。

保存项目

第 4 步:执行测试

在初级阶段之后,现在是测试应用程序的时候了。

为此,从客户端项目开始构建。 这将提示一个新的构建。 检查服务器上的部署文件夹。 在这里,您将看到部署的文件。

但是,即使在所有操作之后,构建仍然失败并且您收到错误“FileException”。

为什么?

可能的原因可能是:

  • Jenkins 没有写入文件夹的权限,无法部署文件。
  • 将 SSH 链接到服务器。
  • 检查输出文件夹权限。
  • 你会知道,我们遇到了一个问题。

执行以下步骤来解决此问题:

  1. 将 Jenkins 添加到一个组,这里是“www-data”组。
  2. 使用sudo chown命令- R : 'www - data' 客户端将输出文件夹的所有权更改为 'www-data' 组
  3. 允许使用sudo chmod命令对文件夹进行写访问
  4. 重启服务器并查看部署的应用程序

詹金斯提供什么好处?

  • Jenkins 是一个开源工具,并提供出色的社区支持。
  • Jenkins 相对容易安装。
  • Jenkins 有 1000 多个插件。 如果插件不可用,您可以轻松编写代码。
  • 詹金斯是免费的。
  • Jenkins 是用 Java 构建的; 因此,可移植到所有主要平台。

另请阅读: Jenkins 项目理念和主题

最后的话

Jenkins 是一个强大的 Java 编写的自动化工具,已广泛用于持续集成。 使用 Jenkins,可以更轻松地使用所编写的内容持续构建和测试软件项目。 它是始终通过集成大量测试和部署技术来交付您的软件的终极工具。

学习软件开发——使用 upGrad 进行 DevOps

upGrad 提供软件开发执行 PG 计划 - DevOps 专业化,您将学习在组织中以非常高的速度交付应用程序和服务。 upGrad 的教员将教你 DevOps 的方方面面,以及为什么学习它会给你带来一份有利可图的职业。

upGrad 的 DevOps 软件开发专业化 PG 文凭课程亮点:

这个延长 12 个月的在线课程提供以下功能:

  • 知识渊博的在线课程与现场讲座
  • 免费访问数据科学和机器学习中的宝贵内容
  • 处理 7 个以上的实时项目和作业
  • 学习十种编程语言和工具
  • 保证安置保证
  • 360° 职业支持和工作协助

软件开发课程

申请 DevOps 高级证书课程