Vor kurzem stand ich vor dem Problem, 30 virtuelle Maschinen von einem 4er ESX Host mit lokalen Festplatten auf einen 5er ESX Host mit Storage migrieren zu müssen.
Bei der Gelegenheit sollte direkt eine Sicherung der VMs auf einem NAS abgelegt werden.
Da die Maschinen unter der Woche unverzichtbar sind, kam als Zeitpunkt für die Migration nur das Wochenende in Frage.
Mit dem folgenden Script fällt das Wochenende für den Administrator nicht komplett ins Wasser:
Connect-VIServer -Server server -User user -Password password -ErrorAction Continue $servers = Get-Content D:\server.txt foreach($server in $servers) { Shutdown-VMGuest -VM $server -Confirm:$false Start-Sleep -Seconds 60 Get-VM -Name $server | Export-VApp -Destination "Zielverzeichnis" -Format OVF -Force Get-VM -Name $server | Move-VM -Destination "Zielhost" -Datastore "Datenspeicher" Start-VM -VM $server Get-VM $server | Update-Tools -NoReboot } Disconnect-VIServer -Force
Was macht das Script?
- Verbindung herstellen
- server.txt einlesen (in der server.txt sind die zu migrierenden Server aufgelistet)
- VM herunterfahren
- 60 Sekunden warten
- OVF Export in das angegebene Zielverzeichnis
- VM migrieren
- VM starten
- VMware Tools updaten