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

目录

主题

路线图

先决条件

Azure Active Directory和服务主体

创建一个Azure Active Directory和服务主体

将应用程序集成到角色

将Jenkins与Azure Service Principal集成

结论


主题

本系列文章将说明如何在本地开发环境中为CI和CD的ASP.NET Core Web应用程序使用Jenkins,将Web应用程序发布到Azure Web App Service以及在Azure上配置Jenkins以便持续集成和持续部署托管应用程序GitHubDevOps用作源代码控制存储库。我们将使用Jenkins创建一个管道,该管道从GitHub获取代码,构建代码,运行测试并部署程序包。这是对GitHub上代码的每次提交的重复性任务。

在该系列的第一篇文章中,我们通过两种方法(管道方法和*样式项目方法)了解了Jenkins的概念,术语,涉及的技术,安装Jenkins,创建ASP.NET Core应用程序以及使用Jenkins持续集成ASP.NET Core应用程序。在第二篇文章中,我们将ASP.NET Core应用程序发布到Azure App ServiceAzure上的Configured Jenkins

在本文中,我们将重点介绍Azure Active DirectoryService Principal,并在使Jenkins Azure管道转到Azure上的ASP.NET核心应用程序的CI/CD之前将JenkinsAzure服务主体集成。

路线图

以下是我们将遵循的路线图,以完全了解使用JenkinsAzure Web App上进行ASP.NET Core应用程序的持续集成和部署(CI/CD)的端到端开发和配置。

先决条件

在开始本文之前,请阅读本系列的前两篇文章。

以下是开发人员在开始使用计算机之前的先决条件:

  1. Visual Studio 2017/2019
  2. 已安装Dotnet 2.1 SDK
  3. 免费/付费Azure订阅
  4. Java 1.5或更高版本
  5. Git帐户
  6. WindowsGit

Azure Active Directory和服务主体

下一步是为我们的应用程序创建身份,因为它需要访问我们的Azure Web应用程序。此身份将用作服务主体,可以为其分配特定权限以在应用程序上进行操作。

创建一个Azure Active Directory和服务主体

1、在Azure门户中,单击Azure Active Directory,然后单击App Registration,如下所示:

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

2、点击New Registration创建一个新的应用程序注册。

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

3、提供一个有意义的名称。例如,我提供了jenkins_sp,然后为支持的帐户类型选择第一个选项,即仅此组织目录中的帐户

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

4、单击注册以创建此新的Azure AD和服务主体。

5、导航到新创建的应用程序,即Jenkins_sp

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

将应用程序集成到角色

若要访问Azure资源,需要将应用程序分配给角色。例如,如果在Azure订阅中,我们将角色分配给资源组,则该资源组中的所有资源将继承该角色及其权限。

1、导航到Azure门户中的订阅。选择订阅。例如,我只有一个订阅,如果选择该订阅,则该订阅中的所有资源都将继承分配的角色和权限。

2、选择后,订阅页面将在右侧打开。

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

3、选择访问控制(IAM)。

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

4、选择添加角色分配

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

5、在添加角色分配窗体中,选择角色作为贡献者,将访问权限分配给Azure AD用户,组或服务主体。在选择选项中,通过键入Jenkins进行搜索,我们会看到我们的jeninks_sp,即我们的服务主体。选择并保存。

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

6、单击新创建的应用程序注册,然后在概述页面上,将以下值复制到记事本中,就像在将服务主体分配给Jenkins时所使用的那样。

  • 应用程序(客户端)ID
  • 目录(租户)ID

7、单击证书和机密,然后添加新客户机密。提供一个名称,然后复制创建的客户端加密的值。

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

现在,我们需要将此服务主体提供给在URL上运行的Jenkins,以便可以访问选定订阅上的Azure资源。

JenkinsAzure Service Principal集成

1、在正在运行的Jenkins URL上,导航至凭证 ->“系统 ->“全局凭证,然后单击添加凭证

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

2、选择Kind作为Microsoft Azure服务主体,然后填写以下字段:

  • 范围Global
  • 订阅ID:您的Azure订阅ID
  • 客户ID:从服务主体应用复制的应用程序(客户)ID
  • 客户机密:加密证书的复制值
  • 租户ID:从服务主体应用复制的目录(租户)ID
  • Azure环境Azure

是时候将Jenkins集成到在Azure门户上创建的服务主体了。

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

单击验证服务主体按钮以验证详细信息和连接。提示成功验证... ”后,单击确定

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

结论

在本文中,我们重点介绍了Azure Active DirectoryService Principal,并将JenkinsAzure Service Principal集成在一起。在该系列的下一篇和最后一篇文章中,我们将看到如何使用Jenkins Azure PipelineAzure启用ASP.NET Core应用程序的CI/CD