【发布时间】:2017-10-29 19:56:27
【问题描述】:
我有多个 Azure VM (Classic) 正在运行,并且想要将 setup.exe 作为 TFS 构建过程的结果复制到这些 VM。由于设置大小约为 800MB,我不想为每个 VM 复制 x 次。仅复制一次然后将其分发到所有 VM 的最佳做法是什么?
【问题讨论】:
标签: azure tfs azure-virtual-machine release-management
我有多个 Azure VM (Classic) 正在运行,并且想要将 setup.exe 作为 TFS 构建过程的结果复制到这些 VM。由于设置大小约为 800MB,我不想为每个 VM 复制 x 次。仅复制一次然后将其分发到所有 VM 的最佳做法是什么?
【问题讨论】:
标签: azure tfs azure-virtual-machine release-management
通常我们使用 Azure File Copy 任务,它使用 AzCopy 来处理复制情况。
当目标是 Azure VM 时,文件首先复制到一个 自动生成 Azure blob 容器,然后 下载到虚拟机中。文件成功复制到虚拟机后,容器将被删除。
即使它不会多次将同一个文件从构建代理复制到虚拟机。并且下载在天蓝色可以。 800MB 仍然是一个很大的文件大小。这将需要很长时间。
文件存储是一个很好的解决方案,但是您需要先手动将驱动器映射到所有虚拟机的文件存储。文件存储不支持 AzCopy。您需要在 TFS 版本定义中使用 powershell 脚本来处理此问题。
【讨论】:
由于您使用的是 Azure VM,因此您可以设置文件存储,然后让 VM 将驱动器映射到文件存储。这样,您可以将文件上传到一个位置,但您的所有虚拟机都可以访问它。
https://docs.microsoft.com/en-us/azure/storage/storage-dotnet-how-to-use-files
【讨论】: