目录

主题

路线图

先决条件

Azure Active Directory和服务主体

创建一个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

先决条件

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

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

  1. Visual Studio 2017/2019年
  2. 已安装Dotnet 2.1 SDK
  3. 免费/付费Azure订阅
  4. Java 1.5或更高版本
  5. Git帐户
  6. 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 PipelineAzure启用ASP.NET Core应用程序的CI/CD

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

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

    目录 主题 路线图 先决条件 将ASP.NET Core应用发布到Azure应用服务 在Azure上配置Jenkins 在Azure上创建Jenkins服务器 解锁Jenkins 结论 主题 本系列文 ...

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

    目录 介绍 路线图 DevOps 持续集成 持续部署 Jenkins Azure Web App服务 主题 先决条件 安装Jenkins 先决条件 下载并安装 Jenkins插件 让它运行 安装自定义 ...

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

    目录 主题 路线图 Jenkins 先决条件 使用Jenkins Azure Pipeline在Azure上的ASP.NET Core应用程序的CI/CD 创建新的管道作业 添加参数 添加管道脚本 运 ...

  4. 使用 Docker 在 Linux 上托管 ASP.NET Core 应用程序

    说在前面 在阅读本文之前,您必须对 Docker 的中涉及的基本概念以及常见命令有一定了解,本文侧重实战,不会对相关概念详述. 同时请确保您本地开发机器已完成如下安装: Docker 18.06 或更 ...

  5. VS 远程调试 Azure Web App

    如果能够远程调试部署在 Azure 上的 Web App,将会极大的提高我们修复 bug 的效率.Visual Studio 一贯以功能强大.好用著称,当然可以通吃基于 Azure 应用的创建.发布和 ...

  6. 【转】一键将Web应用发布到云-Azure Web App!

    我们现在越来越多的传统应用,逐步向云端迁移,原先私有云的部署模式,逐步向云端PaaS IaaS转变.例如: 我们在云端Azure中申请VM虚拟机,将我们的Web应用部署到VM的IIS中,同时做云服务的 ...

  7. Windows Azure HandBook (7) 基于Azure Web App的企业官网改造

    <Windows Azure Platform 系列文章目录> 1.用户场景: C公司是全球大型跨国连锁餐厅,在世界上大约拥有3万间分店.其IT系统主要部署其海外数据中心,或者租用其他ID ...

  8. 使用Azure Application Insignhts监控ASP.NET Core应用程序

    Application Insignhts是微软开发的一套监控程序.他可以对线上的应用程序进行全方位的监控,比如监控每秒的请求数,失败的请求,追踪异常,对每个请求进行监控,从http的耗时,到SQL查 ...

  9. 用 Visual Studio Code 在 macOS 上创建首个 ASP.NET Core 应用程序

    原文:Your First ASP.NET Core Application on a Mac Using Visual Studio Code 作者:Daniel Roth.Steve Smith  ...

最新文章

  1. 支持placeholder和自适配高度的TextView控件
  2. python 模拟抽象类
  3. ios之UISegmentedcontol
  4. 启明云端应用分享|基于乐鑫 ESP-WIFI-MESH 的智能自助洗衣房
  5. Android IOS WebRTC 音视频开发总结(十一)-- stunturn部署
  6. 我的开源 GitBook: Python 之旅
  7. 线程与内核对象的同步-2
  8. 极客学院.java学习笔记
  9. Java 算法 打水问题
  10. C#选项卡TabControl控件隐藏指定选项卡的办法,任意不支持隐藏属性的实现办法详解
  11. Mac中Homebrew下载指定版本软件的方法
  12. html设计判断闰年,javascript如何判断是否为闰年?
  13. 卧槽?原来修出网红脸高清照片可以这样简单,这次把汉化的插件提供给大家!
  14. 2023高频经典前端面试题(es6+webpack+http网络+性能优化中篇,含答案)
  15. 如何加速香港主机运行系统
  16. 链表的快速排序及冒泡排序
  17. MAC maven安装配置
  18. 帝国cms php序号,帝国cms教程:如何使用灵动标签生成带序号的列表
  19. CDH数仓项目(一) —— CDH安装部署搭建详细流程
  20. 压力测试衡量CPU的三个指标

热门文章

  1. python的符号函数得到的数字类型_python-1:Number数字类型 之二 相关函数 int.from_bytes,int.to_bytes()...
  2. ubuntu 9.04 更新源_ubuntu更换中国源
  3. zbbix服务器搭建_zabbix服务器的搭建
  4. android 数据库详解,Android-SQLite数据库操作详解
  5. 中国风春节传统文化海报插画为载体的素材
  6. python软件不用买吗_Python 3.3+中的软件包不需要__init__.py吗
  7. css中调整高度充满_6个很棒的PostCSS插件,让您成为一个CSS向导
  8. python watchdog_Python watchdog
  9. 史上最优秀的转换工具类网站推荐[唯一保存历史转换记录]
  10. cuSPARSE库:(六)cusparseMatrixType_t的说明