Aktionen

VMware:Deregistrieren und Löschen von VMs

Aus znilwiki

Deregistrieren und löschen von virtuellen Maschinen per Windows Batch-Datei

Dieses Szenario wurde für einen Kunden erstellt, bei dem über die geplanten Task im vCenter regelmäßig Kopien vorhandener VM's gezogen wurden. Jedoch kann VMware nicht überschreiben - bevor der Task eine neue Kopie einer VM machen kann, muss die alte Version aus dem vCenter verschwunden sein.

Voraussetzung:

  1. Installierte VMware Remote CLI (z.B. VMware-vSphere-CLI-4.1.0-254719.exe)
  2. Putty - grafischer Telnet und SSH Client
  3. Plink - Tool um Befehle von Windows aus auf Linux Rechner abzusetzen

Putty starten und mindestens einmal auf jedem der betroffenen ESX-Servern anmelden. Es erscheint bei der ersten Verbindung stets ein Warnfenster über einen RSA-Schlüssel der bestätigt werden muss. Putty speichert diese Werte in der Registry - und plink.exe nutzt diese ebenfalls.


Schritt 1: Virtuelle Maschine im vCenter deregistrieren

"C:\Program Files (x86)\VMware\VMware vSphere CLI\bin\vmware-cmd.pl" -H vcenter.domain.suffix -h esx01.domain.suffix -U domain\Benutzer -P passwort -s unregister /vmfs/volumes/SAN-Speicher/NameDerVM/NameDerVM.vmx

"C:\Program Files (x86)\VMware\VMware vSphere CLI\bin\vmware-cmd.pl" : Aufruf des vmware-cmd Tools
-H vcenter.domain.suffix                                             : Angabe des vCenter Servers (auch IP-Adresse möglich)
-h esx01.domain.suffix                                               : Angabe des ESX-Servers auf dem die VM liegt
-U domain\Benutzer                                                   : Windows-Benutzer der die nötigen Rechte im vCenter hat
-P passwort                                                          : Passwort des Benutzers
-s unregister                                                        : vmware-cmd sagen das wir eine VM deregistrieren wollen
/vmfs/volumes/SAN-Speicher/NameDerVM/NameDerVM.vmx                   : lokaler Pfad auf dem ESX-Server zur .vmx Datei der VM

Hinweis eines Lesers (Danke an davekay): Unter VMware Infrastructure (vCenter 2.x) muss es statt "-h" -- "-T" heissen!

Problem: Klingt ja Toll - aber ich habe 3 (oder mehr) ESX Server mit VMware DRS - ich weis doch garnicht auf welchem ESX-Host meine VM gerade liegt!
Lösung: Wir machen es uns einfach - und kopieren die Befehlszeile einfach für jeden ESX-Host einmal und passen diese an (-h aufruf ändern (bzw. -T)). Wird die VM auf dem ESX Host nicht gefunden, gibt es einen Fehler - und nichts passiert.


Schritt 2: Löschen der virtuellen Maschine

Hier kommt nun plink.exe ins Spiel - wir verbinden uns direkt mit den ESX Servern und löschen die VM dort direkt vom Datenträger - Die VM ist ja aus der Bestandsliste des ESX/vCenter entfernt:

"C:\Putty\plink.exe" -ssh esx01.domain.suffix -l root -pw passwort rm -r -f /vmfs/volumes/SAN-Speicher/NameDerVM
 
"C:\Putty\plink.exe"                            : Aufruf von plink.exe selbst
-ssh esx01.domain.suffix                        : Verbindungstyp SSH + DNS Name des ESX Servers (geht auch IP)
-l root                                         : Anmeldebenutzername auf ESX Server
-pw passwort                                    : Passwort des Benutzers
rm -r -f /vmfs/volumes/SAN-Speicher/NameDerVM   : Auszuführender Befehl:
                                                  rm                 : remove = Löschbefehl
                                                  -r                 : Rekursiv = Verzeichnis inklusive Unterverzeichnisse
                                                  -f                 : und bitte ohne störenden Nachfragen
                                                  /vmfs/../NameDerVM : Pfad zum Ordner (!) der VM

liegt die VM auf einem zentralen Speicher, so reicht es den Befehl auf einem der ESX Server auszuführen - im Gegensatz zur Deregistrierung brauchen wir keinen mehrfach Aufruf.

Beispieldatei: Datei:VM-loeschen Beispiel.cmd

REM ###############################################################################################################################################
REM Mailserver
"C:\Program Files (x86)\VMware\VMware vSphere CLI\bin\vmware-cmd.pl" -H vCenter.test.local -h esx01.test.local -U test\Administrator -P passw0rd -s unregister /vmfs/volumes/Backup-SAN/zzz_BACKUP_Mailserver/zzz_BACKUP_Mailserver.vmx
"C:\Program Files (x86)\VMware\VMware vSphere CLI\bin\vmware-cmd.pl" -H vCenter.test.local -h esx02.test.local -U test\Administrator -P passw0rd -s unregister /vmfs/volumes/Backup-SAN/zzz_BACKUP_Mailserver/zzz_BACKUP_Mailserver.vmx
"C:\Program Files (x86)\VMware\VMware vSphere CLI\bin\vmware-cmd.pl" -H vCenter.test.local -h esx03.test.local -U test\Administrator -P passw0rd -s unregister /vmfs/volumes/Backup-SAN/zzz_BACKUP_Mailserver/zzz_BACKUP_Mailserver.vmx
"C:\Program Files (x86)\VMware\VMware vSphere CLI\bin\vmware-cmd.pl" -H vCenter.test.local -h esx04.test.local -U test\Administrator -P passw0rd -s unregister /vmfs/volumes/Backup-SAN/zzz_BACKUP_Mailserver/zzz_BACKUP_Mailserver.vmx

"C:\Putty\plink.exe" -ssh esx01.test.local -l root -pw wsddtdsa rm -r -f /vmfs/volumes/Backup-SAN/zzz_BACKUP_Mailserver

REM ###############################################################################################################################################
REM SQL2008
"C:\Program Files (x86)\VMware\VMware vSphere CLI\bin\vmware-cmd.pl" -H vCenter.test.local -h esx01.test.local -U test\Administrator -P passw0rd -s unregister /vmfs/volumes/Backup-SAN/zzz_BACKUP_SQL2008/zzz_BACKUP_SQL2008.vmx
"C:\Program Files (x86)\VMware\VMware vSphere CLI\bin\vmware-cmd.pl" -H vCenter.test.local -h esx02.test.local -U test\Administrator -P passw0rd -s unregister /vmfs/volumes/Backup-SAN/zzz_BACKUP_SQL2008/zzz_BACKUP_SQL2008.vmx
"C:\Program Files (x86)\VMware\VMware vSphere CLI\bin\vmware-cmd.pl" -H vCenter.test.local -h esx03.test.local -U test\Administrator -P passw0rd -s unregister /vmfs/volumes/Backup-SAN/zzz_BACKUP_SQL2008/zzz_BACKUP_SQL2008.vmx
"C:\Program Files (x86)\VMware\VMware vSphere CLI\bin\vmware-cmd.pl" -H vCenter.test.local -h esx04.test.local -U test\Administrator -P passw0rd -s unregister /vmfs/volumes/Backup-SAN/zzz_BACKUP_SQL2008/zzz_BACKUP_SQL2008.vmx

"C:\Putty\plink.exe" -ssh esx01.test.local -l root -pw wsddtdsa rm -r -f /vmfs/volumes/Backup-SAN/zzz_BACKUP_SQL2008




Kommentar hinzufügen
znilwiki freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, trage deinen Namen oder deine Email-Adresse ein oder melde dich an. Du kannst das Feld auch einfach leer lassen.