Tags: OS Deployment, vSphere, PowerShell
PowerShell kann Standardaufgaben wie das Erstellen einer VM beschleunigen, vor allem dann, wenn man sie häufig ausführen muss. Das trifft etwa auf Bulk-Operationen zu, wo in einem Durchgang Dutzende oder Hunderte virtuelle Maschinen erzeugt werden sollen. In PowerCLI ist dafür das Cmdlet New-VM zuständig.
Legt man eine neue virtuelle Maschine im vSphere Web Client an, dann hilft ein Wizard dem Administrator bei der Konfiguration der zahlreichen Einstellungen. PowerCLI bildet diese durch eine Vielzahl von Parametern für New-VM ab.
Allerdings sind nur wenige davon verpflichtend, ein Minimalaufruf mit Angabe von Name und Host reicht:
New-VM -Name Test -VMHost esxi60-l2.contoso.de
Weiß man die genaue Bezeichnung des Hosts nicht auswendig, dann kann man sich eine Liste mit Get-VMHost anzeigen lassen.
Ungünstige Standardwerte
Wie man nach Erstellen der neuen VM mit
Get-VM -Name test |select -Property *
leicht feststellen kann, wählt vSphere eine Reihe von Vorgabewerten, die in den meisten Fällen nicht passen. Das betrifft etwa die Ausstattung mit CPUs und RAM, die Größe der virtuellen Laufwerke oder die Wahl des Datastores.
Gast-OS festlegen
Man kann dem System bei der Entscheidung für die bestimmte Netzwerk- und SCSI-Adapter helfen, indem man ihm mitteilt, welches Gastbetriebssystem installiert wird. Dies erfolgt über den Parameter GuestID, wobei dieser nicht mit dem Klarnamen des Betriebssystems zufrieden ist, sondern eine VMware-spezifische Konstante erwartet. Sie kann man aus dieser Liste entnehmen.
New-VM -Name Test -VMHost esxi60-l2.contoso.de -GuestID windows8Guest
Dieser Wert steht für Windows 8 x86, für Windows 8.1 dürfte windows9Guest passen und windows10Guest ist derzeit noch nicht definiert.
Zahl der CPUs, RAM, Disk-Größe festlegen
Nicht beeinflusst durch die Angabe des Gast-OS wird die Ausstattung der VM mit CPU, RAM und anderer virtueller Hardware. Dafür bedient man sich folgender Parameter:
- NumCpu (Standard ist 1, wenn nicht angegeben)
- MemoryMB (256 MB per Voreinstellung)
- DiskMB (4096 als Default)
- Version (Version der vHardware. Standardmäßig die höchste vom Host unterstützte, v11 in ESXi 6)
Eine weitere Angabe, die man wahrscheinlich nicht dem Zufall überlassen wird, ist die Wahl des Datastores. Verfügbare Speicher kann man sich mit Get-Datastore anzeigen lassen.
New-VM -Name Test-1 -VMHost esxi-60-l2.contoso.de -GuestId windows9Guest `
-NumCpu 2 -MemoryMB 2048 -DiskMB 9192 -Datastore datastore1 -Version v10
Dieser Aufruf erzeugt eine neue VM unter Verwendung aller oben beschriebenen Parameter.
Mit ISO-Image verknüpfen
Normalerweise wird man das Gast-OS von einem ISO-Abbild installieren wollen. Der Aufruf von New-VM kann aber mit dem Schalter -CD nur ein virtuelles DVD-Laufwerk einrichten. Dieses muss man anschließend über das Cmdlet Set-CDDrive mit einem ISO-Image verbinden.
VMs klonen und registrieren
Wie der Wizard im vSphere Web Client so kann auch New-VM nicht nur VMs von Grund auf neu erstellen, sondern diese auch von einem Template ableiten oder einfach eine vorhandene VM klonen. Diesem Zweck dienen die Parameter Template und VM. Außerdem kann der Administrator damit eine bereits vorhandene VM mit VMFilePath in vCenter registrieren:
New-VM -VMHost esxi-60-l2.contoso.de -VMFilePath `
vms:\myserver@443\Datacenter\Storage\test.vmx
Es liegt auf der Hand, dass in allen diesen drei Fällen die Konfiguration schon vorgegeben ist, entweder weil die VM schon existiert oder weil die neue VM die Einstellungen des Templates bzw. der Eltern-VM übernimmt. Daher können diese drei Parameter nicht zusammen mit NumCpu, MemoryMB und ähnlichen verwendet werden.
Wenn man den Aufruf von New-VM testen will, bevor man ihn endgültig abschickt, dann unterstützt das Cmdlet dafür den Schalter -WhatIf.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- VMware bringt künftig vCenter- vor ESXi-Releases, vSphere 8 U1 als IA verfügbar
- VMware PowerCLI v13: Alle Module nun für Windows, Mac und Linux, Update für vSAN und NSX
- VMware PowerCLI 12.6 bringt Cmdlets für das vCSA-Backup
- Windows-Images mit OSDBuilder automatisch offline aktualisieren
- vSphere GuestStore: VMware Tools, Konfigurationsdateien und Agents an VMs verteilen
Weitere Links