Skip to the content

Templates für Hyper-V...

Nachdem ich eine neue Hardware für meine Tests gekauft hab', braucht man natürlich auch div. Automatisierungen, damit das Arbeiten und Bereitstellen von Testservern etwas mehr Spass macht :)

Als Basis verwende ich einen Windows Server 2019, der als Virtualisierungsserver dient. Ein sehr einfaches Template (ebenso mit Windows Server 2019) soll hier die Arbeiten leichter machen. Da dieses ja nur eine Basis sein soll, soll/muss das Template auch relativ klein sein. Folgende Arbeiten habe ich hier durchgeführt:

  • Benutzer "ansible_task" als weiteren Administrator hinzugefügt [damit die zukünftige Konfigurationsarbeiten automatisiert funktionieren können...]
  • Script aus https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1 ausgeführt (damit über winrm auf die neue VM zugegriffen werden kann)
  • Remote Desktop aktiviert
  • Update installiert
  • Namen und Arbeitsgruppe geändert (meine Testgeräte kommen in keine Domaene...)
  • Reboot

fertig.

Alles weitere wird dann über Ansible installiert und konfiguriert.

Die VM selbst kann dann über das "Export-VM" Commandlet exportiert und zur weiteren Verwendung gespeichert werden. Die passenden weiteren Commandlets finden wir hier: https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/deploy/export-and-import-virtual-machines

Benötigt man dann eine neue Testmaschine, reicht zum Instanziieren ein "Import-VM"; bspw.

Import-VM -Path 'C:\Hyper-V\Exported\W2k19-Template\Virtual Machines\BD74469F-11F9-4077-9E84-60EDF0236DE3.vmcx' -Copy -GenerateNewId -VirtualMachinePath c:\hyper-v\abz-vm-00 -VhdDestinationPath c:\hyper-v\abz-vm-00 -SnapshotFilePath c:\hyper-v\abz-vm-00

Nun ist der Name dann gleich wie beim Template, daher benötigt man noch ein "Rename-VM": Über Get-VM bekommt man die eben importierte VM, (

$newvm = Get-VM | Sort-Object CreationTime | Select-Object -Last 1; Rename-VM -VM $newvm -NewName abz-vm-00).

Soda, dann kann man schon ordentlich damit arbeiten (Start-VM, ...).

Um bspw. einige der erstellten VMs zu starten reicht ein einfaches: 

foreach ($i in 1..10) { $thename = "abz-vm-{0:D2}" -f $i; Start-VM -Name $thename } 

 

Die Konfiguration der Maschinen selbst geschieht dann bei mir über ansible... Mehr dazu vielleicht später.

 

 

 

Harald Krottmaier

Kontaktformular

Bitte beschreiben Sie kurz das Thema, dass Sie mit uns besprechen wollen! Wann sind Sie für einen Rückruf erreichbar?

Das Feld "Vorname" wird benötigt
Das Feld "Nachname" wird benötigt.
Bitte geben Sie eine gültige E-Mailadresse ein