部署Azure虚拟机规模集并使用VSTS中的多个网站安装IIS

时间:2018-10-01 11:14:12

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

我想要以下内容:

  • 使用ARM模板部署的自动缩放VMSS
  • 已安装IIS
  • 从一个VSTS存储库(具有CI版本)安装的默认网站
  • 安装在虚拟路径上的另一个VSTS储存库中的网站(默认网站中包含的子网站。(具有自己的CI版本)

我尝试了很多不同的发布管道选项,但只是不能完全达到目标。

通过从入门指南中复制基本模板,或者在Azure门户中手动部署VMSS,然后下载ARM模板,将其托管在VSTS存储库中并使用发行版,我可以获得使用ARM模板部署的自动缩放VMSS。管道ARM部署任务以创建/更新包含VMSS的Azure资源组。

我可以使用部署组在单个VM上成功完成构建,但是VMSS不能成为部署组的一部分。 (see this issue

当我要实际部署按比例设置构建的网站时,似乎会出现问题。我似乎遇到的两个选项是使用所需状态配置扩展来运行PowerShell脚本,该脚本必须安装AzureRM Commandlet,然后通过下载构建工件并手动安装(或使用Web Deploy)来安装网站。我将不得不上传到blob存储之类的地方,或者通过创建烘焙的计算机映像来运行类似的脚本来完成相同的工作。

我有什么选择?遵循的最简单的部署路径是什么?我是否缺少另一种更简单的部署方式?

由于我有两个要安装的网站,所以我的发布管道具有多个工件(主网站CI构建输出,子网站CI构建输出,部署脚本git repo)。

2 个答案:

答案 0 :(得分:0)

为使虚拟机规模设置能够正常工作,您需要在设置好主VM之后创建一个系统准备的映像。

请确保遵循以下指南:https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/

答案 1 :(得分:0)

我相信,没有真正的方法可以解决您在节点上需要vsts代理的事实。 vsts尚不支持将vmss作为部署目标。因此您需要发明自己的骇客。您只能部署到vmss的1个节点(第一个节点,如主节点)。并使用简单的脚本跨节点同步数据。您可以使用章鱼之类的东西,也可以创建DSC配置从某个存储帐户中提取数据(您可以利用MSI减轻痛苦)。

无论哪种方式,您都必须破解。

ps。对我来说,构建图像是最糟糕的解决方案(即使是自动化的)