Azure 虚拟机规模集部署:部署脚本字段要填写的内容

Azure Virtual Machine Scale Set Deployment: What to fill in for Deployment Script field

我使用 VS2017 "ASP.NET Core Web Application" 和 Angular 创建了一个示例项目。

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

我想将其部署到规模集。因此,对于发布部分,我使用了 "Azure Virtual Machine Scale Set Deployment" 模板。填写时有一个字段 "Deployment Script field" 是必填项。不确定此脚本的用途以及我如何在其中配置以及从何处获取脚本。

TL;DR:

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

额外信息

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

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

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

如果您查看以下屏幕截图,您会看到在选定的 部署脚本 字段下方有一行:此字段是 linked 到 'Build immutable machine image'.

中的 1 个设置

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

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

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

我建议您先创建一个空的 Windows Server 2016 VM,然后尝试创建一个脚本来准备 VM 并安装您的应用程序。完成后,您可以在 VSTS 的构建映像任务中重复使用此脚本来自动创建 VM 和映像,并将该映像用于您的规模集。

更新

您的 VSTS 构建生成了一个工件。在您的场景中,您已经使用 Web 应用程序发布了 zip 文件。您可以配置 Publish Build Artifacts task to also publish any deployment scripts you want to use during your release. These scripts should be stored in version control. The whole artifact, including your zip file and any deployment scripts you add, is used as input to your Release Definition. The zip file contains your web app as a Web Deploy package that you need to deploy to IIS. This piece of documentation 说明如何安装 Web Deploy 并使用它来部署您的应用程序。