如何在Windows中批量创建VMware的虚拟机

在最近的工作中,需要创建一批类似的机器。在VMware中创建了模板,然后根据自义向导部署之后,发现可以快速的完成新vm的部署。系统中的计算机名,IP地址都可以自动的完成更新。唯一的缺点是,系统自带的向导每次只能完成一台vm的安装。所以,必须寻找合适的方法,使得这个工作可以批量完成。

文章地址 https://blog.51cto.com/qiyuwei/2315549

首先需要在Windows的powershell上安装VMware的Powercli。以管理员身份运行一个powershell的窗口,输入以下命令:

Install-Module -Name VMware.PowerCLI -AllowClobber

如何在Windows中批量创建VMware的虚拟机

系统会提示是否要从不信任的源来安装模块,输入Y回车之后就开始自动安装了。

如何在Windows中批量创建VMware的虚拟机

等待安装完毕后,可以查看当前安装的PowerCLI版本

Import-Module VMware.PowerCLI

Get-Module | FT -autosize

如何在Windows中批量创建VMware的虚拟机

接下去就可以使用powershell对vCenter操作了。

Connect-VIServer -Server 10.10.10.10 -Username administrator@vsphere.local -Password YourPassword

由于我有多台vCenter需要管理,在对话框中输入Y,以确保每次都要我输入连接的服务器。

如何在Windows中批量创建VMware的虚拟机

由于Linux系统在使用模板功能部署时,由于MAC地址改变会引起网络不可用。需要修改/etc/udev/rules.d/70-persistent-net.rules文件才可以。所以,我们要充分利用vCenter的Customization Specications能来创建虚拟机。

在VMware中我们需要创建一个Customization Specifications用于虚拟机部署的基准配置。Customization Specifications分为三种,Fixed, Custom,VM。经过测试,其中Fixed可以正常用于我们自定义vm的部署。

New-OSCustomizationSpec -NamingScheme Fixed -OSType Linux -DnsServer 114.114.114.114,8.8.8.8 -Domain qishine.csdn -NamingPrefix $osname -Type Persistent -Name $Customization

接下去需要对现有的Customization Specification创建映射,映射的字段我们需要在csv文件中事先准备好。

Get-OSCustomizationSpec $Customization | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping -IpMode UseStaticIp -IpAddress $IPAddress -SubnetMask $Subnetmask -DefaultGateway $DefaultGW

然后就可以根据我们预先定义的参数来创建并配置虚拟机了

New-VM -Name $VMName -OSCustomizationSpec $Customization -Template $Template -VMHost $VMHost -DiskStorageFormat $disktype -Datastore $Datastore -ResourcePool $ResourcePool | Set-VM -NumCpu $CPU -MemoryMB $Memory -Confirm:$false -RunAsync

Get-VM -Name $VMName | Get-NetworkAdapter | Set-NetworkAdapter -NetworkName $VLAN -Confirm:$false

整个CSV文件是这样的

name,host,datastore,template,customization,ipaddress,subnetmask,defaultgw,dns1,dns2,vlan,mem,cpu,resourcepool,osname,disktype

10.11.24.78-vm1,10.11.24.131,datastore1 (19),CentOS6.8,VM2,10.11.24.78,255.255.255.0,10.11.24.254,114.114.114.114,8.8.8.8,VM Network,1024,2,All,qishine-csdn1,Thick

10.11.24.79-vm2,10.11.24.131,datastore1 (19),CentOS6.8,VM2,10.11.24.79,255.255.255.0,10.11.24.254,114.114.114.114,8.8.8.8,VM Network,1024,2,All,qishine-csdn2,Thick

10.11.24.80-vm3,10.11.24.131,datastore1 (19),CentOS6.8,VM2,10.11.24.80,255.255.255.0,10.11.24.254,114.114.114.114,8.8.8.8,VM Network,1024,2,All,qishine-csdn3,Thick

如无法浏览,请点这里

然后将以下内容保存成ps1文件

$vms = import-csv -path "D:VMDeployvm2.csv"

foreach ($vm in $vms){

$VMName = $vm.name

$VMHost = $vm.host

$Datastore = $vm.datastore

$Template = $vm.template

$Customization = $vm.customization

$IPAddress = $vm.ipaddress

$Subnetmask = $vm.subnetmask

$DefaultGW = $vm.defaultgw

$DNS1 = $vm.dns1

$DNS2 = $vm.dns2

$VLAN = $vm.vlan

$Memory = $vm.mem

$CPU = $vm.cpu

$ResourcePool = $vm.resourcepool

$osname = $vm.osname

$disktype = $vm.disktype

New-OSCustomizationSpec -NamingScheme Fixed -OSType Linux -DnsServer 114.114.114.114,8.8.8.8 -Domain qishine.csdn -NamingPrefix $osname -Type Persistent -Name $Customization

Get-OSCustomizationSpec $Customization | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping -IpMode UseStaticIp -IpAddress $IPAddress -SubnetMask $Subnetmask -DefaultGateway $DefaultGW

New-VM -Name $VMName -OSCustomizationSpec $Customization -Template $Template -VMHost $VMHost -DiskStorageFormat $disktype -Datastore $Datastore -ResourcePool $ResourcePool | Set-VM -NumCpu $CPU -MemoryMB $Memory -Confirm:$false -RunAsync

Get-VM -Name $VMName | Get-NetworkAdapter | Set-NetworkAdapter -NetworkName $VLAN -Confirm:$false

Remove-OSCustomizationSpec $Customization -Confirm:$false

Start-VM -VM $VMName -RunAsync

}

因为,Fixed的Customization Specification不支持重新定义NamingPrefix。所以,对于每一个vm,我都创建了一个Customization Specification并且在部署后删除。

有了两个文件后,我们就可以批量创建vm了。直接运行刚才创建的ps1文件。

如何在Windows中批量创建VMware的虚拟机

等待命令完成后,我们就能在vCenter中或者SCVMM中看到这3台虚拟机了。

如何在Windows中批量创建VMware的虚拟机

并且这些vm都会按照我们之前的定义自动配置系统中的IP和计算机名。然后就可以直接使用这些vm了。

如何在Windows中批量创建VMware的虚拟机

注意,这些vm在开机后会重启一次,以应用我们自定义的内容。

展开阅读全文

页面更新:2024-05-24

标签:批量   虚拟机   都会   字段   基准   以下内容   向导   命令   定义   模板   地址   文件   计算机   数码   工作   系统

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top