目录

主题

路线图

先决条件

将ASP.NET Core应用发布到Azure应用服务

在Azure上配置Jenkins

在Azure上创建Jenkins服务器

解锁Jenkins

结论


主题

本系列文章将说明如何在本地开发环境中为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上配置Jenkins。

路线图

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

  • 1:使用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

将ASP.NET Core应用发布到Azure应用服务

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

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

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

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

2、在下一个屏幕上,选择“App Service”,然后选择“Create New”选项。点击发布

3、当您点击Publish,系统会要求您创建一个应用程序服务。提供下图所示的必填字段。

  • 应用名称:应用名称。您可以选择任何名称。
  • 订阅:选择您拥有的Azure订阅。
  • 资源组:您可以使用现有资源组或创建一个新的资源组。我创建了一个新的文件并将其命名JenkinsIntegrationRSG。
  • 托管计划:在此处创建一个新的托管计划,并为其命名。在这例子中,为JenkinsIntegrationHP,请为其指定一个位置,由于我们将其用于示例应用程序,因此请选择size为“Free”。单击确定

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

4、部署后,您将在浏览器中打开已部署应用程序的URL。正如我们在此处看到的,该应用程序已部署在Azure上,并具有公共URL,我们在此处看到的主机名来自Azure上的托管计算机。

5、在Azure门户上验证相同。登录到Azure门户,您可以找到在仪表板上创建的新资源,其名称与从Visual Studio创建应用程序服务时提供的应用程序服务名称相同。在门户上导航至该资源以检查资源组和URL。资源组与发布时提供的资源组相同。

在Azure上配置Jenkins

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

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

在Azure上创建Jenkins服务器

我们安装了Jenkins并使其在本地开发计算机上运行。让我们看看如何在Azure上对其进行配置。

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

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

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

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

4、填写其他设置表格。

  • 大小:选择Jenkins服务器的大小。我选择了最小的用于演示目的。
  • VM磁盘类型:选择SSD。
  • 虚拟网络:这是可选的,请暂时保留。
  • 子网:配置子网名称,然后按确定
  • 公用IP地址:您可以将其保留为默认值,也可以提供自己的名称。
  • 域名标签:提供一个名称,该名称还将cloudapp URL 附加到Jenkins VM。我给它起了jenkinsintegration的名字
  • Jenkins发行类型:选择所需的发行类型。我选择了LTS。
  • JDK类型:选择Zulu。

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

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

7、在“购买页面上,阅读条款并点击创建。创建和部署Jenkins服务器将花费一些时间。

解锁Jenkins

部署Jenkins之后,就该解锁它了。我们在开发机器上的本地处理方式有所不同。

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

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

3、我们看到这里的操作系统是Linux,因为我们在Linux上部署了Jenkins服务器,并且将使用Linux方式解锁Jenkins。复制虚拟机的DNS名称。

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

5、打开命令提示符,然后在复制的SSH字符串中,用Jenkins VM用户名的名称替换“username”部分。在我们的例子中,它是“Jenkins”。在创建Jenkins服务器时,我们在基本设置中提供了该功能。现在,将修改后的字符串粘贴到命令提示符下,然后按Enter。

6、这将要求您提供Jenkins VM的密码。输入我们在创建Jenkins服务器时提供的密码,然后按Enter。这将登录到Jenkins VM(即Linux机器)并打开SSH会话。现在,我们可以在此终端上使用Linux命令。
要解锁Jenkins,我们需要Linux机器上已安装的Jenkins的管理员密码。键入命令sudo cat /var/lib/jenkins/secrets/initialAdminPassword 以检索初始管理员密码,如下所示。

7、现在,在您的本地计算机上,再次浏览到URL http://localhost:8080,这将显示解锁Jenkins屏幕,在最后一步中提供检索到的密码并解锁Jenkins。点击继续

8、在“开始”页面上,安装建议的插件,即默认选项。

9、提供有关创建管理员用户的详细信息。

这使Jenkins在URL http://localhost:8080上启动并运行。

结论

在本文中,我们学习了如何将ASP.NET Core应用程序发布到Azure App Service并在Azure上配置Jenkins服务器。在接下来的文章中,在使用Jenkins Azure Pipeline转到AzureASP.NET核心应用程序的CI/CD之前,我们将了解Azure活动目录和服务主体,并将Jenkins与Azure服务主体集成。

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

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

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

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

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

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

    目录 主题 路线图 先决条件 Azure Active Directory和服务主体 创建一个Azure Active Directory和服务主体 将应用程序集成到角色 将Jenkins与Azure ...

  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. win32 wmi编程获取系统信息
  2. 车辆检测,车牌识别WPOD-NET OCR-Net
  3. MyBatis 多参数传递
  4. 三种实现分布式解决方案原理分析
  5. python2.面向对象学生管理系统
  6. MATLAB使用技巧
  7. SqlServer学习之存储过程
  8. hadoop rpc客户端初始化和调用过程详解
  9. STL map与Boost unordered_map - 有何不可的日志 - 网易博客
  10. 少年,你知道怎么用一行代码解决分布式事务问题吗?
  11. Linux运行jnetpcap程序(含配置步骤)
  12. hdu 1255 覆盖的面积
  13. 二维码编解码 Java调用示例代码
  14. 生成器 Generators
  15. Refresh Token介绍
  16. matlab 符号 syms,matlab符号表达式求解:syms x y; m=x+y+1; x=[1 2 3]; y=[4 5 6]; 请问怎么求...
  17. 自编超爽的对战游戏 非常有趣
  18. 网络异常模拟测试方法
  19. 秋叶PPT高效训练营笔记 —— Day 1素材
  20. 发表说说代码php,PHP随机发送QQ说说[多用户]

热门文章

  1. 决策树 prepruning_决策树与随机森林
  2. linux 格式化u盘_使用Universal USB Installer,打造你的U盘版Linux系统
  3. 如何设置打印的时候不加上页面链接_电子面单史上最全打印问题集合--【拼点管家软件】...
  4. 下拉默认选择_在Excel中制作二级联动下拉菜单,太有用了
  5. UI初学者必备知识|最好的Sketch App 素材资源都在一流设计导航
  6. 如果你需要万圣节的图片素材来点缀你的节日活动,看这里就对了
  7. UI素材模板|数据可视化APP界面
  8. UI干货素材|app切换开关模块
  9. c++判断奇偶_第十一届(今年)蓝桥杯省模拟赛 试题+源码 C/C++详解
  10. GetCommandLineW()作用