首页 > 系统服务 > 详细

【Azure】通过Image批量创建虚拟机PowerShell脚本

时间:2019-03-24 20:16:02      阅读:157      评论:0      收藏:0      [点我收藏+]

最近需要帮助学院制作统一的运行环境,为此研究了通过Azure创建的的虚拟机安装好需要的工具后,制作Image,并批量创建虚拟机的操作。

  1. 需要通用化我们的模板虚拟机;
    1. 这里参考官网文档,Windows 还是 Linux
      1. https://docs.azure.cn/zh-cn/virtual-machines/windows/capture-image-resource
      2. https://docs.azure.cn/zh-cn/virtual-machines/linux/capture-image

需要注意的是:通用化的过程是不可逆的,请慎重使用,如果不希望影响本地低级,可以创建副本后的虚拟机,在继续次操作。

  1. 继续镜像捕捉的操作,在门户中即可完成;如果没有继续通用化,捕获会失败

技术分享图片

  1. 成功后,在镜像中会看到自己捕获的镜像

技术分享图片

  1. 接下来,你可以基于镜像创建所需要的虚拟机了,可以通过以下脚本创建虚拟机;

#设置初始变量

$cred = Get-Credential

$rgName = "XXXXX"

$location = "Chinaeast2"

$imageName = "imagevm-image-20190322202911"

$storageType = ‘Standard_LRS‘

$myVnet = "XXXXX"

$nsgName = "imagevm-nsg"

$vmSize = "Standard_D4s_v3"

#读取镜像文件、虚拟网络、网络安全组信息

$image = Get-AzureRMImage -ImageName $imageName -ResourceGroupName $rgName

$vnet = Get-AzureRmVirtualNetwork -Name $myVnet -ResourceGroupName $rgName

$nsg = Get-AzureRmNetworkSecurityGroup -ResourceGroupName $rgName -Name $nsgName

#使用循环创建VM,默认数量为2(可调整)

for($i=1;$i –le 2;$i++)

{

#设置虚拟机名称变量

$vmName = "testVM" +$i;

$nicName = "$vmName-Nic" ;

$dataDiskName = "$vmName-DataDisk01" ;

$ipName = "$vmName-Pip";

#建立虚拟网卡

$pip = New-AzureRmPublicIpAddress -Name $ipName -ResourceGroupName $rgName -Location $location -AllocationMethod Dynamic ;

$nic = New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $location -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id ;

#设置并建立500GB的附加数据磁盘

$diskConfig = New-AzureRmDiskConfig -SkuName $storageType -Location $location -CreateOption Empty -DiskSizeGB 500 ;

$dataDisk1 = New-AzureRmDisk -DiskName $dataDiskName -Disk $diskConfig -ResourceGroupName $rgName ;

#建立VM配置文件

$vm = New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize;

$vm = Set-AzureRmVMSourceImage -VM $vm -Id $image.Id ;

$vm = Set-AzureRmVMOSDisk -VM $vm -StorageAccountType $storageType -DiskSizeInGB 128 -CreateOption FromImage -Caching ReadWrite ;

$vm = Set-AzureRmVMOperatingSystem -VM $vm -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent -EnableAutoUpdate ;

$vm = Add-AzureRmVMNetworkInterface -VM $vm -Id $nic.Id ;

$vm = Add-AzureRmVMDataDisk -VM $vm -Name $dataDiskName -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1 ;

#建立VM

New-AzureRmVM -VM $vm -ResourceGroupName $rgName -Location $location -AsJob;

}

技术分享图片

【Azure】通过Image批量创建虚拟机PowerShell脚本

原文:https://www.cnblogs.com/smallfox/p/10589513.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!