使用Jenkins在Azure Web App上进行ASP.NET Core应用程序的持续集成和部署(CI/CD)–第3天
目录
创建一个Azure Active Directory和服务主体
将Jenkins与Azure Service Principal集成
主题
本系列文章将说明如何在本地开发环境中为CI和CD的ASP.NET Core Web应用程序使用Jenkins,将Web应用程序发布到Azure Web App Service以及在Azure上配置Jenkins以便持续集成和持续部署托管应用程序。GitHub将DevOps用作源代码控制存储库。我们将使用Jenkins创建一个管道,该管道从GitHub获取代码,构建代码,运行测试并部署程序包。这是对GitHub上代码的每次提交的重复性任务。
在该系列的第一篇文章中,我们通过两种方法(管道方法和自由样式项目方法)了解了Jenkins的概念,术语,涉及的技术,安装Jenkins,创建ASP.NET Core应用程序以及使用Jenkins持续集成ASP.NET Core应用程序。在第二篇文章中,我们将ASP.NET Core应用程序发布到Azure App Service和Azure上的Configured Jenkins。
在本文中,我们将重点介绍Azure Active Directory和Service Principal,并在使用Jenkins Azure管道转到Azure上的ASP.NET核心应用程序的CI/CD之前将Jenkins与Azure服务主体集成。
路线图
以下是我们将遵循的路线图,以完全了解使用Jenkins在Azure Web App上进行ASP.NET Core应用程序的持续集成和部署(CI/CD)的端到端开发和配置。
- 第一天:使用Jenkins持续集成ASP.NET Core应用程序
- 第2天:将ASP.NET Core应用程序发布到Azure应用服务,并在Azure上配置Jenkins
- 第3天:将Jenkins与Azure Active Directory和Service Principal集成
- 第4天:使用Jenkins Azure Pipeline在Azure上的ASP.NET Core应用程序的CI/CD
先决条件
在开始本文之前,请阅读本系列的前两篇文章。
以下是开发人员在开始使用计算机之前的先决条件:
- Visual Studio 2017/2019年
- 已安装Dotnet 2.1 SDK
- 免费/付费Azure订阅
- Java 1.5或更高版本
- Git帐户
- Windows版Git
Azure Active Directory和服务主体
下一步是为我们的应用程序创建身份,因为它需要访问我们的Azure Web应用程序。此身份将用作服务主体,可以为其分配特定权限以在应用程序上进行操作。
创建一个Azure Active Directory和服务主体
1、在Azure门户中,单击“Azure Active Directory”,然后单击“App Registration”,如下所示:
2、点击“New Registration”创建一个新的应用程序注册。
3、提供一个有意义的名称。例如,我提供了“jenkins_sp”,然后为支持的帐户类型选择第一个选项,即“仅此组织目录中的帐户”。
4、单击“注册”以创建此新的Azure AD和服务主体。
5、导航到新创建的应用程序,即“Jenkins_sp”。
将应用程序集成到角色
若要访问Azure资源,需要将应用程序分配给角色。例如,如果在Azure订阅中,我们将角色分配给资源组,则该资源组中的所有资源将继承该角色及其权限。
1、导航到Azure门户中的“订阅”。选择订阅。例如,我只有一个订阅,如果选择该订阅,则该订阅中的所有资源都将继承分配的角色和权限。
2、选择后,订阅页面将在右侧打开。
3、选择访问控制(IAM)。
4、选择“添加角色分配”。
5、在“添加角色分配”窗体中,选择“角色”作为“贡献者”,将访问权限分配给“Azure AD用户,组或服务主体”。在“选择”选项中,通过键入Jenkins进行搜索,我们会看到我们的jeninks_sp,即我们的服务主体。选择并保存。
6、
6、单击新创建的应用程序注册,然后在概述页面上,将以下值复制到记事本中,就像在将服务主体分配给Jenkins时所使用的那样。
- 应用程序(客户端)ID
- 目录(租户)ID
7、单击“证书和机密”,然后添加“新客户机密”。提供一个名称,然后复制创建的客户端加密的值。
现在,我们需要将此服务主体提供给在URL上运行的Jenkins,以便可以访问选定订阅上的Azure资源。
将Jenkins与Azure Service Principal集成
1、在正在运行的Jenkins URL上,导航至“凭证” ->“系统” ->“全局凭证”,然后单击“添加凭证”。
2
2、选择“Kind”作为“Microsoft Azure服务主体”,然后填写以下字段:
- 范围:Global
- 订阅ID:您的Azure订阅ID
- 客户ID:从服务主体应用复制的应用程序(客户)ID
- 客户机密:加密证书的复制值
- 租户ID:从服务主体应用复制的目录(租户)ID
- Azure环境:Azure
是时候将Jenkins集成到在Azure门户上创建的服务主体了。
单击“验证服务主体”按钮以验证详细信息和连接。提示“已成功验证... ”后,单击确定。
结论
在本文中,我们重点介绍了Azure Active Directory和Service Principal,并将Jenkins与Azure Service Principal集成在一起。在该系列的下一篇和最后一篇文章中,我们将看到如何使用Jenkins Azure Pipeline在Azure上启用ASP.NET Core应用程序的CI/CD。