2017-06-16 27 views
0

假设我从一个图像创建了一个缩放集,其中有5个虚拟机。如何更新刻度集Image&Vm的

现在假设我有一个适用于我的应用程序的更新,我如何推送此更新,以便使用最新的应用程序代码更新映像,并且将更新推送到ScaleSet中的所有Current Running Vm,下次ScaleSet带来了新的虚拟机的它会做这样使用更新后的图像

谢谢

回答

0

如果您使用的是自定义图像,你会做这样的事情:

$rgname = "resourceGroupName" 
$vmssname = "vmssName" 
$instanceid = "1" # How Many instances we update simultaneously 

$vmss = Get-AzureRmVmss -ResourceGroupName $rgname ` 
    -VMScaleSetName $vmssname 
$vmss.virtualMachineProfile.storageProfile.osDisk.image.uri ` 
    = $newURI #update image URI 
Update-AzureRmVmss -ResourceGroupName $rgname -Name $vmssname ` 
    -VirtualMachineScaleSet $vmss # push changes 
Update-AzureRmVmssInstance -ResourceGroupName $rgname ` 
    -VMScaleSetName $vmssname -InstanceId $instanceId # start update 

所以一般你需要供应新的或更新的图像到VMSS,然后调用更新。

一些阅读:
https://msftstack.wordpress.com/2016/05/17/how-to-upgrade-an-azure-vm-scale-set-without-shutting-it-down/

+0

感谢您的回复嗨,你所提到的是什么更新的操作系统,我想询问有关更新,我已经安装在服务器上我的应用程序文件。我如何将新文件推送到我的应用程序文件夹中,以及如何在一个缩放集中完成所有vm的操作。我不需要每次创建一个新映像,而是需要将次要更新推送到vm – avshetty

+0

,这在逻辑上就是这样。或使用配置管理工具(DSC \ ansible \ puppet \等)。因为规模集不是由rdp管理的。最简单的方法是更新图像(你真的应该有一个ci \ cd管道,所以没有这么做)或更新vm扩展 – 4c74356b41