Hola de nuevo!
Os traigo el script en PowerCli para desplegar máquinas virtuales de forma masiva.
Necesitais un .csv con los siguientes campos alojado en el mismo path del script.
No meja ponerlos en una sola linea pero estos son los titulos para las columnas del csv
vCenter | Template | Cluster | VMName | Notas |
Ipaddr | Subnet | Gateway | Vlan | Customization | Ram |
VirtualCPUtotal | SocketCoreDown |
Y este es el script:
cls Write-host "#########################################################################################################" -foregroundcolor green # Cabecera Ayuda. Write-host { ################################################ ## IMFORMACION PREVIA (Alta de maquina) ## ################################################ 1.Rellenar el archivo vmWindows.csv Template: Plantilla Datastore: DTS donde alojar la VM Vmhost: Host ESXi donde alojar la VM Customization: Custom con toda la configuracion Vmname: Nombre de VM Ipaddr: IP de VM Subnet: Mascara subred Gateway: Puerta de enlace Pdns: DNS Vlan: VLAN ID Ram: Memoria RAM VirtualCPUtotal: CPUs Total SocketCoreDown: Cores por procesador (desplegable de abajo en el "Edit Settings") 2.Conectate al VCENTER 3.Una vez terminado el script, esperar a que cada maquina haga el sysprep, duracion 10 min aprox. 4.La maquina contestara a ping y cuando nos logemos la primera vez entrara en dominio e instalara los agentes (Se reiniciara sola) 5.Despues ya podremos hacer la siguiente operativa: 5.1Revisar vmTools. 5.2Revisar el HOST y Datastore } Write-host "#########################################################################################################" -foregroundcolor green Read-Host "--> Si estas seguro de todos los pasos pulsa ENTER para continuar... (Si no, CTRL+C)" #Declaración de variables $vmlist = Import-CSV -Delimiter ";" vmWindowsv2.csv foreach ($item in $vmlist) { # Mapeo de las variables con los datos del CSV $Cluster = $item.cluster $Template = $item.template $customization = $item.customization $vmname = $item.vmname $ipaddr = $item.ipaddr $subnet = $item.subnet $gateway = $item.gateway $pdns ="****" $vlan = $item.vlan $RAM = $item.ram $virtualCPUtotal = $item.virtualCPUtotal $socketCoreDown = $item.socketCoreDown $disksize = 40 + $RAM $notas = $item.Notas $env = $vmname.Substring(1,4) $s = "S" $v = "*" $server= "$s$env$v" $esx = Get-Cluster $Cluster | Get-VMHost -name $server $vmhost = $esx | Get-Random if ($env -eq "****") { $Luns = Get-Datastore -vmhost $vmhost | where {$_.Name -LIKE "****" -AND $_.FreeSpaceMB -gt 600000} $datastore = $luns | Get-Random } else { $Luns = Get-Datastore -vmhost $vmhost | where {$_.Name -LIKE "****" -AND $_.FreeSpaceMB -gt 600000} $datastore = $luns | Get-Random } Write-host Generando instalacion para $item.vmname -foregroundcolor yellow $item Write-host Tamaño disco C: $disksize -foregroundcolor yellow Write-host Host: $vmhost -foregroundcolor yellow Write-host Datastore: $datastore -foregroundcolor yellow Write-host Write-host Clonando maquina... -foregroundcolor green Get-oscustomizationspec $customization | Get-OSCustomizationNicMapping | where {$_.Position -eq 1}| Set-OSCustomizationNicMapping -IpMode UseStaticIp -IpAddress $ipaddr -SubnetMask $subnet -DefaultGateway $gateway -dns $pdns | out-null #Comando para la clonación New-VM -Name $vmname -Template $Template -Datastore $datastore -VMHost $vmhost | Set-VM -OSCustomizationSpec $customization -RunAsync -Confirm:$false #Configuramos VLAN $eth1 = Get-NetworkAdapter -vm $vmname | where {$_.name -eq "Network Adapter 1"}| Set-NetworkAdapter -NetworkName $vlan -Confirm:$false | out-null #Ampliacion disco C Get-HardDisk $vmname | where {$_.Name -eq "hard disk 1"} | Set-HardDisk -CapacityGB $disksize -Confirm:$false | out-null #Configuramos RAM y CPU Write-host Configuramos RAM y CPU -foregroundcolor yellow $RAM = Set-VM $vmname -MemoryGB $ram -Confirm:$false $spec=New-Object –Type VMware.Vim.VirtualMAchineConfigSpec –Property @{“NumCoresPerSocket” = $socketCoreDown} (Get-VM –Name $vmname).ExtensionData.ReconfigVM_Task($spec) get-vm $vmname | set-vm -numcpu $virtualCPUtotal -Confirm:$false #Plantilla Usada Set-VM $vmname -Description $notas -Confirm:$false | out-null # Actualizamos HW # Comprobamos versión esxi $HWversion = Get-VMHost $vmhost | select | % {$_.version} ####################################### ## ESXi version | HW Version ## ## ESXi 6.0 | 11 ## ## ESXi 5.5 | 10 ## ## ESXi 5.1 | 9 ## ## ESXi 5.0 | 8 ## ####################################### write-host Version del esxi $HWversion -foregroundcolor green $hwstr6= $HWversion.Substring(0,1) $hwstr5= $HWversion.Substring(2,1) if ($hwstr5 -eq 1) {Set-VM -VM $vmname -Version v10 -Confirm:$false | out-null} # 5.1.0 if ($hwstr5 -eq 5) {Set-VM -VM $vmname -Version v10 -Confirm:$false | out-null} # 5.5.0 if ($hwstr6 -eq 6) {Set-VM -VM $vmname -Version v11 -Confirm:$false | out-null} # 6.0.0 $HWvm = Get-VM $vmname | select | % {$_.version} write-host write-host Se actualiza el hw de la maquina a la ultima version -foregroundcolor green write-host El HW actual de la máquina es: $HWvm -foregroundcolor green write-host #Arrancamos la maquina Start-VM -VM $vmname | out-null write-host " --> Maquina creada y arrancada" -foregroundcolor green write-host } Write-host --> Finaliza el alta de maquinas -foregroundcolor green
———————————————————————————