Azure虚拟机规模集部署:要为“部署脚本”字段填写什么

时间:2018-01-29 07:46:42

标签: azure-devops azure-pipelines azure-pipelines-release-pipeline

我使用带有Angular的VS2017“ASP.NET核心Web应用程序”创建了一个示例项目。

然后在VSTS中我使用构建模板构建:ASP.NET Core(构建面向.NET Core的ASP.NET核心Web应用程序)。这成功构建并在工件部分中将构建保存在.zip文件中。

我想将它部署到比例集。因此,对于Release部分,我使用了“Azure Virtual Machine Scale Set Deployment”模板。在填写时,有一个“部署脚本字段”字段是强制性的。不确定此脚本的用途以及如何在其中进行配置以及从何处获取脚本。

1 个答案:

答案 0 :(得分:1)

<强> TL; DR:

此脚本在您准备的虚拟机上部署部署包的内容。对于Angular ASP.NET Core应用程序,这意味着您必须安装IIS,.NET Core Windows Server Hosting Bundle并将您的应用程序复制到IIS。

额外信息

Azure虚拟机扩展集部署模板创建了一个包含两个任务的环境:

  • 构建不可变的机器映像
  • Azure VMSS:使用不可变机器映像进行更新

这两个任务都有一堆需要配置的字段。发布管理允许您将重要字段链接到您的流程。这意味着这些设置都在环境下分组,无需完成任务即可轻松设置。

如果您查看以下屏幕截图,您会看到所选部署脚本字段下方有一行:此字段链接到“构建不可变机器图像”中的1个设置

Settings are linked to the process level

如果查看构建不可变机器映像任务的documentation,您会看到部署脚本的以下内容:

  • 部署脚本:指定部署程序包的PowerShell脚本(对于Windows)或shell脚本(对于Linux)的相对路径。此脚本应位于上面选择的部署包路径中。例如,Deploy / ubuntu / deployNodejsApp.sh。该脚本可能需要安装Curl,Node.js,NGINX和PM2;复制申请;然后配置NGINX和PM2以运行该应用程序。

因此,这是将您的应用程序自动部署到VM的脚本。对于Angular ASP.NET Core应用程序,这意味着您必须install IIS, install the NET Core Windows Server Hosting bundle and copy your app to IIS

我建议您先创建一个空的Windows Server 2016虚拟机,然后尝试创建一个准备虚拟机并安装应用的脚本。完成后,您可以在VSTS的构建映像任务中重用此脚本,以自动化VM和映像创建,并将该映像用于您的缩放集。

更新

您的VSTS Build会生成一个工件。在您的方案中,您已经在Web应用程序中发布了zip文件。您可以将Publish Build Artifacts任务配置为还发布要在发布期间使用的任何部署脚本。这些脚本应存储在版本控制中。整个工件(包括您的zip文件和您添加的任何部署脚本)将用作“版本定义”的输入。该zip文件包含您的Web应用程序,作为您需要部署到IIS的Web Deploy包。这篇documentation解释了如何安装Web Deploy并使用它来部署您的应用程序。