使用 Jenkins 在 Azure Web App 上持续集成和部署 (CI/CD) ASP.NET Core 应用程序 – 第二天

作者 : 慕源网 本文共3291个字,预计阅读时间需要9分钟 发布时间: 2021-11-8 共662人阅读

介绍

本系列文章将解释如何在本地开发环境中使用 Jenkins 进行 ASP.NET Core Web 应用程序的 CI 和 CD。它还展示了将 Web 应用程序发布到 Azure Web 应用服务以及在 Azure 上配置 Jenkins 以实现托管应用程序的持续集成和持续部署。GitHub 将 DevOps 作为源控制存储库。我们将使用 Jenkins 创建一个管道,该管道从 GitHub 获取代码、构建代码、运行测试并部署包。每次提交位于 GitHub 上的代码时,这将是一项重复性任务。

在本系列的第一篇文章中,我们通过管道方法和自由式项目方法两种方法了解了概念、术语、涉及的技术、安装 Jenkins、创建 ASP.NET Core 应用程序以及使用 Jenkins 持续集成 Asp.NET Core 应用程序。在本文中,我们将在继续下一步之前将 ASP.Net 核心应用程序发布到 Azure 应用服务并在 Azure 上配置 Jenkins。

路线图

以下是我们将使用的路线图,以完全学习使用 Jenkins 在 Azure Web 应用程序上进行 Asp.Net Core 应用程序的持续集成和部署 (CI/CD) 的端到端开发和配置。

必备条件

在开始这篇文章之前,先阅读本系列的第一篇文章。

以下是开发人员在开始之前在他们的机器上拥有的必备条件:

  1. Visual Studio 2017/2019。
  2. 已安装 Dotnet 2.1 SDK。
  3. Azure 订阅免费/付费。
  4. Java 1.5 或更高版本。
  5. Git账号
  6. 适用于 Windows 的 Git

将 ASP.NET Core 应用程序发布到 Azure 应用服务

我们在本地配置和测试了 Jenkins。现在是使用 Azure Web App 服务将我们的 Web 应用程序发布到 Azure 并在那里配置 Jenkins 以进行持续集成和部署的时候了。

Jenkins 的作用是从 Azure 上的 GitHub 获取代码,编译它,如果编译成功,将更改发布到部署的网站。为此,已需要在 Azure 应用服务上预配应用程序。

让我们首先将应用程序部署到 Azure 并让它在公共 URL 上运行。

  1. 在 Visual Studio 中打开应用程序的解决方案文件。右键单击 Web 项目,然后单击发布。
  2. 在下一个屏幕上,选择“应用服务”并选择“新建”选项。点击发布。
  3. 当您单击“发布”时,系统会要求您创建应用服务。提供必填字段,如下图所示。
      • 应用程序名称:应用程序的名称。您可以提供任何您选择的名称。
      • 订阅:选择您拥有的 Azure 订阅。
      • 资源组:您可以使用现有的资源组或创建一个新的资源组。我创建了一个新的并将其命名为 JenkinsIntegrationRSG。
      • 托管计划:在此处创建一个新的托管计划,并为其命名。在本例中,它是 JenkinsIntegrationHP,给它一个位置,因为我们将它用于示例应用程序,所以在大小上选择“免费”。单击确定。

    提供所有详细信息后,单击“创建”。创建应用服务并将应用程序部署到该应用服务需要一些时间。

  4. 部署后,您将获得在浏览器中打开的已部署应用程序的 URL。正如我们在此处看到的,该应用程序部署在 Azure 上并具有一个公共 URL,我们在此处看到的主机名来自 Azure 上的托管机器。
  5. 在 Azure 门户上验证相同。登录到您的 Azure 门户,您可以找到在仪表板上创建的新资源,其中包含从 Visual Studio 创建应用服务时提供的应用服务的名称。导航到门户上的该资源以检查资源组和 URL。资源组与我们在发布时提供的相同。

在 Azure 上配置 Jenkins

我们将在 Azure 上配置 Jenkins 服务器并将我们的应用程序集成到 CI 和 CD。

在继续之前,请卸载安装在本地计算机上的 Jenkins,并删除在 Program Files 上创建的 Jenkins 文件夹。

在 Azure 上创建 Jenkins 服务器

我们在本地开发机器上安装并运行 Jenkins。让我们看看如何在 Azure 上配置它。

  1. 在 Azure 门户上,创建一个新资源并在搜索选项中搜索 Jenkins,如下所示:
  2. Jenkins 资源从 Azure 市场加载,单击创建以在 Azure 上部署新的 Jenkins 服务器。
  3. 在表单上提供所需的信息,然后单击“确定”。名称:您的 Jenkins 服务器的一个有意义的名称。用户名:提供可用作 Jenkins 服务器机器管理员用户的用户名。身份验证类型:您可以选择 SSH 密钥或密码。我选择了密码,因此提供一个您可以记住的密码并确认密码。订阅:选择您的 Azure 订阅。资源组:您可以创建新资源组或使用现有资源组。我创建了一个名为JenkinsConfigRSG的新文件。

    位置:为 Jenkins 服务器选择一个位置。

  4. 填写附加设置表格。大小:选择 Jenkins 服务器的大小。为了演示目的,我选择了最小的一个。VM 磁盘类型:选择 SSD。虚拟网络:这是可选的,暂时不用。子网:配置子网名称并按 OK。公共 IP 地址:您可以将其保留为默认值或提供您自己的名称。

    域名标签:提供一个名称,该名称另外会将cloudapp URL附加到 Jenkins VM。我给它起了个名字“jenkinsintegration”。

    Jenkins 发布类型:选择所需的发布类型。我选择了 LTS。

    JDK 类型:选择祖鲁语。

  5. 在集成设置中,选择“否”以启用云​​代理。
  6. 单击确定完成。在“摘要”上,验证详细信息并单击“确定”。
  7. 在“购买”页面上,阅读条款并单击“创建”。创建和部署 Jenkins 服务器需要一些时间。

解锁Jenkins

部署 Jenkins 后,就可以解锁它了。这与我们在本地开发机器上的做法略有不同。
  1. 在门户上,导航到新创建的 Jenkins 资源组。
  2. 在资源组页面,点击新建的Jenkins虚拟机。
  3. 我们看到这里的操作系统是 Linux,因为我们在 Linux 上部署了我们的 Jenkins 服务器,我们将使用 Linux 方式来解锁 Jenkins。复制 VM 的 DNS 名称。
  4. 在您的机器上打开浏览器并浏览复制的 DNS 名称。这将打开一个 Jenkins 页面,您可以在其中获取 SSH 字符串。复制那个字符串。
  5. 打开命令提示符,在复制的 SSH 字符串中,将“用户名”部分替换为 Jenkins VM 用户名的名称。在我们的例子中,它是“Jenkins”。我们在创建 Jenkins 服务器时在基本设置中提供了它。现在将修改后的字符串粘贴到命令提示符并按 Enter。
  6. 这将要求您提供 Jenkins VM 的密码。输入我们在创建 Jenkins 服务器时提供的密码,然后按 Enter。这将登录到 Jenkins VM,即 Linux 机器并打开一个 SSH 会话。我们现在可以在这个终端上使用 Linux 命令。要解锁 Jenkins,我们需要 Linux 机器上安装的 Jenkins 的管理员密码。键入命令“sudo cat /var/lib/jenkins/secrets/initialAdminPassword”以检索初始管理员密码,如下所示。
  7. 现在在您的本地机器上,再次浏览到 URL http://localhost:8080,这将显示解锁 Jenkins 屏幕,提供在最后一步中检索到的密码并解锁 Jenkins。单击继续。
  8. 在入门页面上,安装建议的插件,即默认选项。
  9. 提供创建管理员用户的详细信息。
这让 Jenkins 在 URL http://localhost:8080上启动并运行。

结论

在本文中,我们学习了如何将 Asp.NET Core 应用程序发布到 Azure 应用服务并在 Azure 上配置 Jenkins 服务器。在下一篇文章中,我们将了解 Azure Active Directory 和服务主体以及将 Jenkins 与 Azure 服务主体集成,然后再继续使用 Jenkins Azure Pipeline 在 Azure 上进行 ASP.NET Core 应用程序的 CI/CD。


慕源网 » 使用 Jenkins 在 Azure Web App 上持续集成和部署 (CI/CD) ASP.NET Core 应用程序 – 第二天

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录