Virtual Machine Duplicator

Der Klassiker und speziell mein Use Case für alle SharePoint Firmen und Berater. Ich brauche eine Spielwiese bestehend aus den unterschiedlichsten SharePoint Umgebungen. Daher habe ich ein PowerShell Modul Virtual Machine Duplicator aus einer Kundenanforderung entworfen.

Eine standardisierte Testumgebung inkl. automatisiert Provisionierung unterstützt den Berater und steigert seine Effektivität.

Typischerweise baut man sich also seine Testumgebung. Gerade bei Softwareherstellern ist das ein umfangreiches unterfangen, da viele Mitarbeiter solch eine Umgebung benötigen, denn es gibt oft folgende Anforderungen:

  • Isoliert
  • Dediziert
  • Einfache Erstellung
  • Performance

Use Cases

Softwarehersteller haben zudem das Problem, dass bestimmte Use Cases für Demo Zwecke zur Verwendung kommen sollen. Dadurch ist das Erscheinungsbild nach Außen hin identisch und wirkt professionell.

Die Idee ist nun, ich baue nur einmal eine Umgebung auf Azure, in der aktuellen Version werden folgende VM Typen unterstützt:

  • AD
  • SQL
  • SharePoint 2013
  • SharePoint 2016
  • SharePoint 2019
  • Office Online
  • Exchange
  • Windows 10

Man sieht also den Umfang solch einer Umgebung und kann sich ausmalen, was allein der Pflegeaufwand dafür betrifft – das hochgerechnet pro Benutzer… Natürlich wird es hier und da trotzdem noch den Fall geben, dass man auch eine Installation etc. testet und es dennoch notwendig ist, eine eigene Umgebung zu installieren oder eben in der o.g. Vorlage auszubauen.

Auf GitHub habe ich das entsprechende PowerShell Modul „VMD“ bereit gestellt. Das kann sowohl die Provisionierung, starten und stoppen übernehmen, einfach per PowerShell oder auch Azure CLI.

Flexibilität

Zwar ist grundsätzlich die Annahme das zumindest das Template in Azure ist (bitte ohne Managed Disks, da später über den Storage Account kopiert wird – das Ziel darf dann auch Managed Disks verwenden), die Flexibilität ist aber da. Man kann also die VMs ebenfalls herunterladen und in Hyper-V importieren. Das Skript erledigt auch das.

Sofern auch die Azure CLI installiert wurde (https://www.hobmaier.net/2018/02/azure-cloud-shell.html), kann man die Umgebung auf aus der Azure App (iOS geht definitiv) starten/stoppen.

Technik

Der Großteil ist PowerShell bzw. eben als Modul psm1. Voraussetzung ist das AzureRM PowerShell Module (in Azure CLI bereits installiert und heißt dort nur Az). Über das Modul wird aber die komplette VM erzeugt inkl. Virtual Network, Storage Accounts, Resource Group, Network Security Group…)

Für die Provisionierung und für den Download wird AzCopy verwendet, daher geht das nur auf Windows und nicht in Azure CLI. Es kopiert im Backend und zeigt am Client lediglich den Status an (Bei Azure zu Azure).

Für Hyper-V wird ebenfalls das lokale Hyper-V Modul am Server verwendet, um die VMs anzulegen, zu starten und stoppen.

Offen

Aktuell sind noch die Disk Namen hart im PowerShell Modul .psm1 hinterlegt. Dies muss man entweder anpassen oder bei Bedarf in das dafür vorgesehene XML Dokument verschieben (ähnlich wie Benutzer / Kennwort).

Sollte man das Skript lokal auf Hyper-V nutzen (und die VMs gerade aus Azure bezogen haben), fehlt beim Start das Pagefile. Das ist zwar grundsätzlich im Skript eingebaut, funktioniert aber fast nie (weil Remote WMI und Firewall/User selten funktionieren), d.h. das bleibt manuelle Arbeit.

Bugs und Features sind ohnehin auf GitHub gepflegt. Über Feedback freue ich mich natürlich sehr. Ansonsten hoffe ich damit weiterhelfen zu können.

Referenz

Teilen

Autor: Dennis Hobmaier

Dennis Hobmaier ist Consultant - Digital Workspace bei Insight Technology Solutions GmbH. Er hat über 15 Jahre Erfahrung in IT-Enterprise Umgebung aller Größenordnungen und bedient Kunden aus den unterschiedlichsten Branchen. Als MCSE SharePoint hat er tiefgreifende Kenntnisse in den Bereichen Microsoft Active Directory, Windows, Azure, SharePoint und Office 365. Gerne teilt er seine Projekterfahrung mit Ihnen.

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie mehr darüber, wie Ihre Kommentardaten verarbeitet werden .