使用 Visual Studio Team Services 和 IIS 创建持续集成管道
若要将应用程序开发的生成、测试和部署阶段自动化,可以使用持续集成和部署 (CI/CD) 管道。 本教程介绍如何在 Azure 中使用 Visual Studio Team Services 和 Windows 虚拟机 (VM) 创建一个运行 IIS 的 CI/CD 管道。 你将学习如何执行以下操作:
- 将 ASP.NET Web 应用程序发布到 Team Services 项目
- 创建由代码提交触发的生成定义
- 在 Azure 中的虚拟机上创建和配置 IIS
- 将 IIS 实例添加到 Team Services 中的部署组
- 创建发布定义,用于将新的 Web 部署包发布到 IIS
- 测试 CI/CD 管道
本教程需要 Azure PowerShell 模块 3.6 或更高版本。 运行 Get-Module -ListAvailable AzureRM
即可查找版本。 如果需要进行升级,请参阅 Install Azure PowerShell module(安装 Azure PowerShell 模块)。
在 Team Services 中创建项目
使用 Visual Studio Team Services 可以轻松进行协作和开发,而无需维护本地代码管理解决方案。 Team Services 提供云代码测试、生成和应用程序见解信息。 可以选择最适合用于代码开发的版本控制存储库和 IDE。 对于本教程,可以使用免费帐户来创建基本的 ASP.NET Web 应用和 CI/CD 管道。 如果还没有 Team Services 帐户,请创建一个。
若要管理代码提交过程、生成定义及发布定义,请按如下所示在 Team Services 中创建一个项目:
- 在 Web 浏览器中打开 Team Services 仪表板,然后选择“新建项目”。
- 为“项目名称”输入 myWebApp。 保留其他所有默认值,以便使用“Git”版本控制和“Agile”工作项过程。
- 选择“与团队成员共享”选项,然后选择“创建”。
- 创建项目后,请选择“使用自述文件或 gitignore 初始化”选项,然后选择“初始化”。
- 在新项目中,选择顶部的“仪表板”,然后选择“在 Visual Studio 中打开”。
创建 ASP.NET Web 应用程序
上一步骤已在 Team Services 中创建一个项目。 最后一个步骤是在 Visual Studio 中打开新项目。 可在“团队资源管理器”窗口中管理代码提交。 创建新项目的本地副本,然后通过模板创建 ASP.NET Web 应用程序,如下所示:
选择“克隆”,创建 Team Services 项目的本地 git 存储库。
在“解决方案”下面,选择“新建”。
选择“Web”模板,然后选择“ASP.NET Web 应用程序”模板。
- 输入应用程序的名称(例如 myWebApp),并取消选中“创建解决方案的目录”所对应的框。
- 取消选中“将 Application Insights 添加到项目”所对应的框(如果该选项可用)。 Application Insights 要求使用 Azure Application Insights 为 Web 应用程序授权。 本教程为了保持内容简洁,已跳过此过程。
- 选择“确定” 。
- 从模板列表中选择“MVC”。
- 依次选择“更改身份验证”、“无身份验证”、“确定”。
- 选择“确定”,创建解决方案。
在“团队资源管理器”窗口中选择“更改”。
在提交文本框中输入一条消息,例如“初始提交”。 从下拉菜单中选择“全部提交并同步”。
创建生成定义
在 Team Services 中,可以使用生成定义来概述如何生成应用程序。 本教程将创建一个基本的定义,它采用我们的源代码,生成解决方案,然后创建可用于在 IIS 服务器上运行 Web 应用的 Web 部署包。
- 在 Team Services 项目的顶部选择“生成和发布”,然后选择“生成”。
- 选择“+ 新建定义”。
- 选择“ASP.NET (预览)”模板,然后选择“应用”。
保留所有默认任务值。 在“获取源”下面,确保已选择“myWebApp”存储库和“master”分支。
在“触发器”选项卡上,将“启用此触发器”对应的滑块移动到“已启用”。
- 保存生成定义,选择“保存并排队”将新的生成排入队列,然后再次选择“保存并排队”。 保留默认值并选择“排队”。
监视生成在托管代理上的计划过程,然后开始生成。 输出类似于以下示例:
创建虚拟机
若要提供一个平台来运行 ASP.NET Web 应用,需要一个运行 IIS 的 Windows 虚拟机。 提交代码和触发生成时,Team Services 使用代理与 IIS 实例交互。
使用此脚本示例创建 Windows Server 2016 VM。 该脚本需要花费几分钟来运行和创建 VM。 创建 VM 后,请使用 Add-AzureRmNetworkSecurityRuleConfig 为 Web 流量打开端口 80,如下所示:
Get-AzureRmNetworkSecurityGroup ` -ResourceGroupName $resourceGroup ` -Name "myNetworkSecurityGroup" | ` Add-AzureRmNetworkSecurityRuleConfig ` -Name "myNetworkSecurityGroupRuleWeb" ` -Protocol "Tcp" ` -Direction "Inbound" ` -Priority "1001" ` -SourceAddressPrefix "*" ` -SourcePortRange "*" ` -DestinationAddressPrefix "*" ` -DestinationPortRange "80" ` -Access "Allow" | ` Set-AzureRmNetworkSecurityGroup
若要连接到 VM,请使用 Get-AzureRmPublicIpAddress 获取公共 IP 地址,如下所示:
Get-AzureRmPublicIpAddress -ResourceGroupName $resourceGroup | Select IpAddress
与 VM 建立远程桌面会话:
mstsc /v:<publicIpAddress>
在 VM 上,打开“管理员 PowerShell”命令提示符。 按如下所示安装 IIS 和所需的 .NET 功能:
Install-WindowsFeature Web-Server,Web-Asp-Net45,NET-Framework-Features
创建部署组
若要将 Web 部署包推送到 IIS 服务器,请在 Team Services 中定义一个部署组。 将代码提交到 Team Services 以及完成生成时,可在此组中指定哪些服务器要用作新生成的目标。
- 在 Team Services 中选择“生成和发布”,然后选择“部署组”。
- 选择“添加部署组”。
- 输入组的名称(例如 myIIS),然后选择“创建”。
- 在“注册计算机”部分中,请确保已选择“Windows”,然后选中“使用脚本中的个人访问令牌进行身份验证”所对应的框。
- 选择“将脚本复制到剪贴板”。
将 IIS VM 添加到部署组
创建部署组后,请将每个 IIS 实例添加到该组。 Team Services 将生成一个脚本,用于在 VM 上下载并配置一个代理,以便接收新的 Web 部署包,然后将这些包应用到 IIS。
- 返回到 VM 上的“管理员 PowerShell”会话,粘贴并运行从 Team Services 复制的脚本。
- 当系统提示配置代理的标记时,请选择“Y”,然后输入 web。
- 当系统提示输入用户帐户时,请按 Return 接受默认值。
- 等待脚本完成并出现消息“服务 vstsagent.account.computername 已成功启动”。
在“生成和发布”菜单的“部署组”页中,打开 myIIS 部署组。 在“计算机”选项卡上,检查你的 VM 是否已列出。
创建发布定义
若要发布生成,请在 Team Services 中创建发布定义。 成功生成应用程序时,会自动触发此定义。 选择要将 Web 部署包推送到的部署组,然后定义相应的 IIS 设置。
- 选择“生成和发布”,然后选择“生成”。 选择在上一步骤中创建的生成定义。
- 在“最近完成”下面选择最近的生成,然后选择“发布”。
- 选择“是”创建发布定义。
- 选择“空”模板,然后选择“下一步”。
- 检查项目中是否已填充项目与源生成定义。
- 选中“持续部署”复选框,然后选择“创建”。
选择“+ 添加任务”旁边的下拉列表框,然后选择“添加部署组阶段”。
选择“IIS Web 应用部署(预览)”旁边的“添加”,然后选择“关闭”。
选择“在部署组上运行”父任务。
- 对于“部署组”,请选择前面创建的部署组,例如 myIIS。
在“计算机标记”框中,选择“添加”,然后选择“web”标记。
选择“部署: IIS Web 应用部署”任务以配置 IIS 实例设置,如下所示:
- 对于“网站名称”,请输入“默认网站”。
- 保留其他所有默认设置。
- 选择“保存”,然后选择“确定”两次。
创建版本并发布
现在,可将 Web 部署包推送为新版本。 此步骤将与构成部署组的每个实例上的代理通信,推送 Web 部署包,然后将 IIS 配置为运行更新的 Web 应用程序。
- 在发布定义中选择“+ 发布”,然后选择“创建发布”。
- 检查下拉列表中是否已选择最新的生成以及“自动化部署: 创建发布后”。 选择“创建” 。
- 发布定义的顶部将显示一个小标题,例如“已创建发布‘Release-1’”。 选择发布链接。
打开“日志”选项卡查看发布进度。
发布完成后,请打开 Web 浏览器并输入 VM 的公共 IIP 地址。 ASP.NET Web 应用程序正在运行。
测试整个 CI/CD 管道
在 IIS 上运行 Web 应用程序后,请尝试测试整个 CI/CD 管道。 在 Visual Studio 中进行更改并提交代码后,将触发生成,然后触发将更新的 Web 部署包发布到 IIS 的过程:
- 在 Visual Studio 中打开“解决方案资源管理器”窗口。
- 导航到“myWebApp”|“视图”|“主页”|“Index.cshtml”并将它打开
编辑第 6 行,如下所示:
<h1>ASP.NET with VSTS and CI/CD!</h1>
保存文件。
- 打开“团队资源管理器”窗口,选择“myWebApp”项目,然后选择“更改”。
- 输入提交消息(例如“测试 CI/CD 管道”),然后从下拉菜单中选择“全部提交并同步”。
- 在 Team Services 工作区中,已通过代码提交触发了新的生成。
- 选择“生成和发布”,然后选择“生成”。
- 选择生成定义,然后选择“已排队和正在运行”生成来监视生成进度。
- 成功生成后,将触发新的发布。
- 选择“生成和发布”,然后选择“发布”查看已推送到 IIS VM 的 Web 部署包。
- 选择“刷新”图标来更新状态。 如果“环境”列显示绿色的复选标记,则表示已成功将发布部署到 IIS。
若要查看已应用的更改,请在浏览器中刷新 IIS 网站。
后续步骤
本教程已在 Team Services 中创建一个 ASP.NET Web 应用程序,并配置了生成和发布定义,以便每次提交代码时将新的 Web 部署包部署到 IIS。 你已了解如何:
- 将 ASP.NET Web 应用程序发布到 Team Services 项目
- 创建由代码提交触发的生成定义
- 在 Azure 中的虚拟机上创建和配置 IIS
- 将 IIS 实例添加到 Team Services 中的部署组
- 创建发布定义,用于将新的 Web 部署包发布到 IIS
- 测试 CI/CD 管道
转到下一教程,了解如何使用 SSL 证书保护 Web 服务器。
使用 SSL 保护 Web 服务器
转载于:https://www.cnblogs.com/zangdalei/p/7873074.html
使用 Visual Studio Team Services 和 IIS 创建持续集成管道相关推荐
- TFS(Visual Studio Team Services) / Azure Devops git认证失败 authentication fails 的解决方案 http协议
TFS(Visual Studio Team Services) / Azure Devops git认证失败 authentication fails 的解决方案 http协议 参考文章: (1)T ...
- Azure DevOps+Docker+Asp.NET Core 实现CI/CD(二.创建CI持续集成管道)
前言 本文主要是讲解如何使用Azure DevOps+Docker 来实现持续集成Asp.NET Core项目(当然 也可以是任意项目). 上一篇: Azure DevOps+Docker+Asp.N ...
- Visual Studio Team Edition for Database Professionals[转贴]
你可以叫它DataDube,TeamData,VSTSDBP或者其他任何什么.这个新的Visual Studio工具为你控制的工程的数据库开发阶段指明了正确方向.当然,我知道你的数据库开发已经在控制之 ...
- Visual Studio Team System 2008 Team Suite (90-day Trial)(转)
Visual Studio Team System 2008 Team Suite (90-day Trial) 相关介绍: http://www.microsoft.com/downloads/de ...
- 千呼万唤始出来 ===Visual Studio Team System 2008 Team Suite 中文版 Out!!!
MSDN Library for Visual Studio 2008 http://www.microsoft.com/downloads/details.aspx?FamilyID=6ff3bc6 ...
- 安装了Visual Studio Team System Web Access 2008 Power Tool
今天安装了Visual Studio Team System Web Access 2008 Power Tool,发现只有使用确省得设置,即:使用另外的Port的方式进行设置,才最后成功.另外的选择 ...
- 装了Visual Studio 2005之后重装IIS的问题解决方法
一般我们在安装Visual Studio 之前,是都已经把IIS都装好了的,这样安装不会出问题,但是如果由于某些原因在装了Visual Studio 之后再重装了IIS的话,那么,此时的.NET环境就 ...
- Visual Studio 2012中的为创建类时的添加注释模板
我们往往需要给类添加注释,我们可以把注释块复制出来,放到文件中,然后在需要的时候,复制.粘贴.这样的重复劳动增加了程序员的体力劳动,而VS中给我们提供了项模版,我们只需要在其中修改一点点模版就能达到这 ...
- Visual Studio提示“无法启动IIS Express Web服务器”的解决方法
有时,在使用Visual Studio运行ASP.NET项目时,会提示"无法启动IIS Express Web服务器",无法运行,如图: 这一般出现在重装系统之后,或者项目是从别的 ...
最新文章
- 求5个学生4门成绩的总分和平均分
- 执行startx后Ubuntupassword正确进不去的问题
- Java联网技术之一HTTP
- mysql5.7 备份
- 树莓派 | threading01 - 创建两个子线程同时运行,两个线程各负责控制一个LED灯以不同的频率闪烁
- 32位mips运算器logisim_很多网友问32位低功耗MCU设计
- svg 自己做动画图片 GSAP真的好用
- python sqlite
- 机器人技术之Simulink仿真基础
- 看!Mac上好用的流程图软件就是它
- JAVA操作docx文档
- windows系统设置保护视力方法
- maya导入abc动画_blender布娃娃小女孩从建模到动画全套教程
- 树莓派监测CPU温度
- windows10一右击就转圈圈,假死状态解决了
- echarts省级地图显示(入门)
- 【BZOJ 1716】 [Usaco2006 Dec]The Fewest Coins 找零钱(背包dp)
- 如何断开mongodb数据库连接_如何创建mongodb数据库连接
- 【进阶C语言】五人赛跑的真实排名
- python大数据之数据清洗
热门文章
- python之钉钉机器人编程
- 初次安装ArcGIS 10.2 License Server Administrator无法启动
- [转]Web测试中的界面测试用例设计
- 为什么大部分人做不了架构师?这2点是关键
- 用Java语言,写一个植物大战僵尸简易版!
- 经典面试题 | 讲一讲JVM的组成
- 面试前必须要知道的Redis面试题
- 刚换工作,记录下心得
- Andriod --- JetPack (三):ViewModel 的诞生
- makefile使用宏及用法$(宏标识符) $(cc)_宏编程的艺术