New-VM: Virtuelle Maschinen anlegen mit VMware PowerCLI

    Virtual MachinePowerShell kann Standard­aufgaben wie das Er­stel­len einer VM beschleu­nigen, vor allem dann, wenn man sie häufig aus­­führen muss. Das trifft etwa auf Bulk-Opera­tionen zu, wo in einem Durch­gang Dutzende oder Hun­derte virtu­elle 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.

    New-VM bildet alle Optionen des Wizards über Parameter 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 Gastbetriebs­system 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.

    Keine Kommentare