65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.67/5 (7投票s)

2019 年 11 月 28 日

CPOL

4分钟阅读

viewsIcon

10191

downloadIcon

134

在本文中,我们将重点介绍 Azure Active Directory 和 Service Principal,并在将 ASP.NET Core 应用程序集成到 Azure Service Principal 中后,使用 Jenkins Azure Pipeline 进行 ASP.NET Core 应用程序的 CI/CD。

  

主题

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

在本系列的第一篇文章中,我们学习了相关的概念、术语、技术,如何安装 Jenkins,创建 ASP.NET Core 应用程序,以及通过两种方法(管道方法和自由风格项目方法)使用 Jenkins 对 ASP.NET Core 应用程序进行持续集成。在第二篇文章中,我们将 ASP.NET Core 应用程序发布到 Azure App Service 并配置了 Azure 上的 Jenkins。

在本文中,我们将重点介绍 Azure Active Directory 和 Service Principal,并在将 ASP.NET Core 应用程序集成到 Azure Service Principal 中后,使用 Jenkins Azure Pipeline 进行 **ASP.NET Core 应用程序在 Azure 上的 CI/CD**。

路线图

以下是我们为完全学习使用 Jenkins 在 Azure 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. Git for Windows

Azure Active Directory 和 Service Principal

下一步是为我们的应用程序创建一个标识,因为它需要访问我们的 Azure Web App。此标识将作为 Service Principal,可以被分配一定的权限来操作该应用程序。

创建 Azure Active Directory 和 Service Principal

  1. 在 Azure 门户中,单击 **Azure Active Directory**,然后单击 **应用注册**,如下图所示

  2. 单击 **新建注册** 以创建新的应用注册。

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

  4. 单击 **注册** 以创建此新的 Azure AD 和 Service Principal。
  5. 导航到新创建的应用程序,即 `Jenkins_sp`。

将应用程序集成到角色

为了获得对 Azure 资源的访问权限,需要将应用程序分配到一个角色。例如,如果在 Azure 订阅中,我们将角色分配给一个资源组,那么该资源组中的所有资源都将继承该角色及其权限。

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

  2. 选择后,订阅页面将显示在右侧。

  3. 选择 **访问控制 (IAM)**。

  4. 选择 **添加角色分配**。

  5. 在 **添加角色分配** 表单中,选择 **参与者** 作为角色,为 **Azure AD 用户、组或服务主体** 分配访问权限。在 **选择** 选项中,通过键入 Jenkins 进行搜索,我们会看到我们的 `jeninks_sp`,即我们的 Service Principal。选择它并保存。

  6. 单击新创建的应用注册,然后在概述页面上,将以下值复制到记事本中,因为这些值将在将 Service Principal 分配给 Jenkins 时使用。
    • 应用程序 (客户端) ID
    • 目录 (租户) ID
  7. 单击 **证书和密码**,然后添加 **新客户端密码**。为其提供一个名称并复制创建的客户端密码的值。

    现在,我们需要将此 Service Principal 提供给运行在 URL 上的 Jenkins,以便它能够访问所选订阅上的 Azure 资源。

将 Jenkins 集成到 Azure Service Principal

  1. 在运行的 Jenkins URL 上,导航到 **凭据** -> **系统** -> **全局凭据**,然后单击“**添加凭据**”。

  2. 选择 **Kind** 为 **Microsoft Azure Service Principal**,并填写以下字段
    • 范围:全局
    • 订阅 ID:您的 Azure 订阅 ID
    • 客户端 ID:从 Service Principal 应用复制的应用程序 (客户端) ID
    • 客户端密码:复制的密码证书值
    • 租户 ID:从 Service Principal 应用复制的目录 (租户) ID
    • Azure 环境:Azure

现在,将 Jenkins 集成到 Azure 门户上创建的 Service Principal。

单击 **验证服务主体** 按钮以验证详细信息和连接。一旦显示 **验证成功…**,单击 **确定**。

结论

在本文中,我们重点介绍了 Azure Active Directory 和 Service Principal,以及将 Jenkins 集成到 Azure Service Principal。在本系列的下一篇也是最后一篇文章中,我们将了解如何实现 **使用 Jenkins Azure Pipeline 在 Azure 上进行 ASP.NET Core 应用程序的 CI/CD**。

历史

  • 2019 年 11 月 27 日:初始版本
© . All rights reserved.