在Azure上部署ASP.NET Core应用与配置Jenkins CI/CD

在本系列文章的第一篇中,学习了概念、术语、涉及的技术、安装Jenkins、创建ASP.NET Core应用程序以及使用Jenkins实现ASP.NET Core应用程序的持续集成。本文将介绍如何将ASP.NET Core应用程序发布到Azure App Service,并在Azure上配置Jenkins,以便进行持续集成和部署。

将遵循以下路线图来全面学习在Azure Web App上使用Jenkins实现ASP.NET Core应用程序的持续集成和部署(CI/CD)的端到端开发和配置。

第一天:使用Jenkins实现ASP.NET Core应用程序的持续集成

使用Jenkins实现ASP.NET Core应用程序的持续集成。

第二天:将ASP.NET Core应用程序发布到Azure App Service并配置Azure上的Jenkins

发布ASP.NET Core应用程序到Azure App Service并配置Azure上的Jenkins。

第三天:将Jenkins与Azure Active Directory和Service Principal集成

将Jenkins与Azure Active Directory和Service Principal集成。

第四天:使用Jenkins Azure Pipeline实现ASP.NET Core应用程序的CI/CD

使用Jenkins Azure Pipeline实现ASP.NET Core应用程序的CI/CD。

先决条件

在开始本文之前,请先阅读本系列文章的第一篇。 开发人员在开始之前需要在机器上具备以下先决条件:

  • Visual Studio 2017/2019
  • 安装了Dotnet 2.1 SDK
  • Azure订阅(免费/付费)
  • Java 1.5或更高版本
  • Git账户
  • Git for Windows

将ASP.NET Core应用程序发布到Azure App Service

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

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

首先,让将应用程序部署到Azure并使其在公共URL上运行。

在Visual Studio中打开应用程序的解决方案文件。右键单击Web项目,然后单击“发布”。

在下一个屏幕上,选择“App Service”并选择“创建新”选项。单击“发布”。

当单击“发布”时,系统会要求创建一个应用服务。如以下图像所示,提供所需的字段。

  • 应用名称:应用程序的名称。可以给选择的任何名称。
  • 订阅:选择拥有的Azure订阅。
  • 资源组:可以使用现有的资源组或创建一个新的。创建了一个新的,并将其命名为JenkinsIntegrationRSG。
  • 托管计划:在这里创建一个新的托管计划,给它一个名称。在这种情况下,它是JenkinsIntegrationHP,给它一个位置,并且由于将其用于示例应用程序,选择“免费”大小。单击“确定”。

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

部署完成后,将在浏览器中打开部署的应用程序的URL。如在这里看到的,应用程序已部署在Azure上,并具有公共URL,在这里看到的主机名来自Azure上的托管机器。

在Azure门户上验证相同的内容。登录到Azure门户,可以在仪表板上找到在创建应用服务时提供的名称的新资源。导航到门户上的该资源以检查资源组和URL。资源组是在发布时提供的相同的资源组。

在Azure上配置Jenkins

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

在继续之前,请卸载在本地机器上安装的Jenkins,并删除在程序文件中创建的Jenkins文件夹。

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

在Azure门户上,创建一个新资源,并在搜索选项中搜索Jenkins,如下所示:

Jenkins资源从Azure Marketplace加载,单击“创建”以在Azure上部署新的Jenkins服务器。

在表单上提供所需的信息,然后单击“确定”。

  • 名称:Jenkins服务器的有意义的名称
  • 用户名:提供可以作为Jenkins服务器机器的管理员用户的用户名。
  • 认证类型:可以选择SSH密钥或密码。选择了密码,因此请提供一个可以记住的密码,并确认密码。
  • 订阅:选择Azure订阅。
  • 资源组:可以创建一个新的或使用现有的资源组。创建了一个新的,命名为JenkinsConfigRSG。
  • 位置:为Jenkins服务器选择一个位置。

填写附加设置表单。

  • 大小:选择Jenkins服务器的大小。选择了最小的一个用于演示目的。
  • VM磁盘类型:选择SSD。
  • 虚拟网络:这是可选的,现在先留空。
  • 子网:配置子网名称,然后按“确定”。
  • 公共IP地址:可以将其保留为默认值,或提供自己的名称。
  • 域名标签:提供一个名称,该名称将附加到JenkinsVM的cloudapp URL。给它命名为“jenkinsintegration”。
  • Jenkins发布类型:选择所需的发布类型。选择了LTS。
  • JDK类型:选择Zulu。

在集成设置中,选择“否”以启用云代理。

单击“确定”以完成。在摘要上,验证详细信息,然后单击“确定”。

在“购买”页面上,阅读条款并单击“创建”。创建和部署Jenkins服务器需要一些时间。

Jenkins部署完成后,是时候解锁它了。这与在开发机器上本地执行的方式有所不同。

在门户上,导航到新创建的Jenkins资源组。

在资源组页面上,单击新创建的Jenkins虚拟机。

看到这里的操作系统是Linux,因为在Linux上部署了Jenkins服务器,将使用Linux方式来解锁Jenkins。复制VM的DNS名称。

在机器上打开浏览器,并浏览复制的DNS名称。这将打开一个Jenkins页面,可以在其中获取SSH字符串。复制该字符串。

打开命令提示符,并在复制的SSH字符串中,将“用户名”部分替换为Jenkins VM用户名。在例子中,它是“Jenkins”。在创建Jenkins服务器时在基本设置中提供了这个。现在将修改后的字符串粘贴到命令提示符中,然后按Enter。

这将要求提供Jenkins VM的密码。输入在创建Jenkins服务器时提供的密码,然后按Enter。这将登录到Jenkins VM,即Linux机器,并打开一个SSH会话。现在可以在该终端上使用Linux命令。

要解锁Jenkins,需要从安装在Linux机器上的Jenkins中获取一个管理员密码。键入命令“sudo cat /var/lib/jenkins/secrets/initialAdminPassword”以检索初始管理员密码,如下所示。

现在在本地机器上,再次浏览到URL http://localhost:8080,这将显示解锁Jenkins的屏幕,提供上一步中检索到的密码,并解锁Jenkins。单击“继续”。

在入门页面上,安装建议的插件,即默认选项。

提供创建管理员用户的详细信息。

这使得Jenkins在URL http://localhost:8080上运行。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485