powerCLI vm 管理
1、安装.NET 4.5依赖组件 2、安装VMware-PowerCLI-6.5.0 【常用操作】 1,连接vcenter: Connect-VIServer -Server 192.168.1.20(vcenter的ip) -Username "Administrator@vsphere.local" -Password "XXXXXXXXXX" 2,批量创建: foreach ($i in 1..7){ New-vm -vmhost 192.168.1.21(esxi主机的ip) -Name win7vm_$i -Template XXXXXXXXXX(模板名称) -Datastore p6300 } 3,批量启动: foreach ($i in 1..3){Start-vm -vm tai5_$i } 4,批量关闭: foreach ($i in 1..200){Stop-vm -vm a_$i -confirm:$false} 5,批量删除: foreach ($i in 1..200){Remove-vm -vm tai_$i -confirm:$false -deletepermanently} 其中--deletepermanently永久删除 6,批量迁移: foreach ($i in 1..200){move-vm -vm tai_$i -confirm:$false -datastore p6000} 【脚本操作】 ------------------------- $vcenterIP ="192.168.0.20" #esxi的IP $vmhost="192.168.0.21" $dataStore="SAN_VOLUME_LAN1" #使用的模版 $vmTemplate="win7-temp" #计算机名的前缀, $vmName_prefix="win7" #计算机IP的前缀 $vmIP_prefix ="172.16.0" $vmIP_mask ="255.255.255.0" $vmIP_gateway ="172.16.0.254" #虚拟机创建循环的步长 $vmIPstep =1 #虚拟机起始IP $IPstart=10 #虚拟机结束IP $IPEnd=12 #连接Vcenter的IP,帐号密码 Connect-VIServer -Server $vcenterIP -User xxxx -Password xxxx #查找自定义规范管理器里的模版 $custSysprep = Get-OSCustomizationSpec | where {$_.name -like "win7profile"} #虚拟机的存储路径 $Location = "XXXXXXXXX" #设置当前虚拟机的网卡vlan $NetworkName = "vlan120" #开始IP $i=$IPstart while (($i -ge $IPstart) -and ($i -le $IPEnd)) { #拼接计算机IP $vmIP="$vmIP_prefix.$i" #拼接计算机名称 $vmName="$vmName_prefix-$i" #修改自定义规范管理器里的模版内容,使用静态IP方式,IP地址,IP子网掩码,和网关 $custSysprep | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping -IpMode UseStaticIP -IpAddress $vmIP -SubnetMask $vmIP_mask -DefaultGateway $vmIP_gateway #创建虚拟机,哪台ESXI,计算机名,模版,数据存储,自定义模版,以及创建到哪个文件夹下。 New-VM -vmhost $vmhost -Name $vmName -Template $vmTemplate -Datastore $dataStore -OSCustomizationspec $custSysprep -Location $Location #设置当前虚拟机的网卡属于哪个vlan Get-VM -Name $vmName | Get-NetworkAdapter | Set-NetworkAdapter -NetworkName $NetworkName -Confirm:$false #启动当前虚拟机 Get-VM -Name $vmName | Start-VM #继续循环 $i=$i+$vmIPstep } #恢复自定义规范管理器里的模版到默认。 $custSysprep | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping -IpMode PromptUser -SubnetMask $vmIP_mask -DefaultGateway $vmIP_gateway ------------------------- 【csv文件部署】 准备:创建*.csv类型的模板文件 参考:http://ju.outofmemory.cn/entry/225231 #连接VC Connect-VIServer 10.129.63.42 -User 'administrator@vsphere.local' -Password 'VMware VCenter Login_Password' #导入*.csv模板中虚机信息 $vms = Import-CSV C:\Scripts\NewVMs.csv #创建虚拟机 foreach ($vm in $vms){ #获取模板信息 $Template = Get-Template $vm.template #获取虚机存放主机位置 $VMHost = Get-VMHost $vm.host #获取数据存放存储位置 $Datastore = Get-Datastore $vm.datastore #获取虚机存放文件夹位置 $Folder = Get-Folder $vm.folder #新建虚机 New-VM -Name $vm.name -Template $Template -VMHost $VMHost -Datastore $Datastore -Location $Folder -RunAsync #开启新建虚机 Start-VM $vm.name }
------山的那一边