Stefan Zawacki

Microsoft bietet mit den DevTest Labs eine neue Möglichkeit einfach und schnell virtuelle Maschinen zu erzeugen und zu verwalten. Im dritten Teiler dieser vierteiligen Reihe zeige ich Ihnen wie Sie aus den virtuellen Computern eines DevTest Labs Images erzeugen, die Sie als Vorlagen für neue virtuelle Computer verwenden können.


Azure DevTest Labs ist ein neuer Resourcen-Type in Microsoft Azure, der sich seit kurzem in der Preview-Phase befindet. Daher stellen alle in dieser Tutorial-Reihe zusammengetragenen Informationen den aktuellen Ist-Zusand dar. Bis zum endgültigen Release können noch Änderungen von seiten Microsofts einfließen.

In dieser vierteiligen Reihe werden die folgenden Themen behandelt:

Um die einzelnen Schritte der Tutorials mitmachen zu können genügt ein kostenloser Azure Account, den Sie sich unter: https://portal.azure.com anlegen können.

 

In diesem Beitrag zeige ich Ihnen, wie Sie aus einer vorhandenen virtuellen Maschine ein Image erstellen, das als Grundlage für neue virtuelle Computer verwendet werden kann. Ebenso werde ich Ihnen zeigen, wie Sie eine lokal erstellte virtuelle Maschine in Azure hochladen und in ihrem DevTest Lab verwenden können  Dieses Tutorial basiert auf dem DevTest Lab, das in den ersten beiden Teilen aufgebaut wurde. Sollte Sie den Ersten und Zweiten Beitrag noch nicht gelesen haben, empfehle ich dieses nachzuholen.

 

Ein Custom Image erzeugen

Haben Sie einmalige ihre virtuelle Maschine konfiguriert und möchten nun aus dieser ein fertiges Image bereitstellen, auf dessen Basis weitere virtuelle Computer erzeugt werden können, so haben Sie die Möglichkeit dies aus dem DevTest Lab heraus zu tun.

Im DevTest Lab klicken Sie auf die virtuelle Maschine, die Sie als Basis verwenden möchten.

 

DevTest Labs create Image

 

In den Einstellungen der VM sehen Sie im rechten Bereich den Punkt „Create custom image (VHD)“, wählen Sie diesen aus.

 

DevTest Labs create custom Image

 

Anschließend vergeben Sie einen Namen für das Image und nach belieben eine Beschreibung. Die beiden Schalte darunter sind wichtig für die späteren virtuellen Maschinen, die Sie aus dem Image erzeugen möchten.

Durch das System-Tool Sysprep werden alle User-Accounts eines Windows Computers gelöscht und der Computer in einen generalisierten Zustand zurückversetzt. Dies ist wichtig um später einen neuen Benutzer, beim Erstellen einer neuen virtuellen Maschine, anlegen zu können.

Sollten Sie jedoch Software installiert haben, die spezielle Benutzer-Accounts verwendet, wie zum Beispiel eine SQL Server Installation, so dürfen diese Accounts nicht gelöscht werden, da ansonsten die Funktionalität beeinträchtigt wird.

Daher müssen Sie die Schalter „I have run sysprep on the virtual machine.“ und „Run sysprep on virtual machine.“ entsprechend setzen.

Nachdem einem Klick auf „Ok“ wird das Image erzeugt. Die virtuelle Maschine wird beim Erstellen des Images nicht gelöscht. Unter dem Service Manger ist es ebenfalls möglich Images aus vorhandenen virtuellen Computern zu erstellen. Bei diesem Vorgang wird die bestehende VM jedoch gelöscht. Mit den Azure DevTest Labs passiert dies nun nicht mehr, Sie können die VM danach weiter nutzen.

Der Vorgang kann eine Weile dauern. Hierbei zeigte sich bei meinen Tests auch noch die Fehleranfälligkeit der Preview-Version. Des öfteren bin ich beim Erzeugen vom Images auf Fehlermeldungen gestoßen, besonders wenn ich „Run sysprep on virtual machine.“ aktiviert hatte. Sollte Sie hier auf eine Fehlermeldung stoßen, empfehle ich sich mit der VM zu verbinden und Sysprep von Hand auszuführen. Anschließend erneut das Image erstellen lassen und die Option „I have run sysprep on the virtual machine.“ aktivieren. Danach ließen sich die Images bei meinen Tests problemlos erstellen.

Nachdem das Image erstellt wurde erzeuge ich eine neue VM und wähle als Basis das eben erstellte Image aus, das mir in der Liste direkt unter der Selbst erstellten Formular angezeigt wird.

 

DevTest Labs select Image

 

Ich wähle hier keine Artefakte aus und lasse die VM erstellen. Nach Abschluss verbinde ich mich mit der virtuellen Maschine und sehe, dass die im zweiten Teile dieser Tutorial-Reihe installierte Software auf der VM vorhanden ist, da sie Bestandteil des Images ist.

 

DevTest Labs connect new VM

 

Ein lokales Image in den DevTest Labs bereitstellen

Neben der Möglichkeit Custom Images aus bestehenden virtuellen Azure Maschinen zu erstellen, gibt es auch noch die Möglichkeit lokal erstellte Images, aus beispielsweise Hyper-V, oder auch Virtual Box, in Azure hochzuladen und bereitzustellen.

Um ein Image hochladen zu können muss dieses im VHD-Format vorliegen, VHDX-Images können in Azure nicht verwendet werden. In den Settings des DevTest Lab den Punkt „Custom Images (VHDs)“ auswählen.

DevTest Lab custom images

 

In der Übersicht sehen Sie das zuvor angelegt Image und Sie klicken auf „+ Custom image“, um ein neues Image anzulegen.

 

DevTest Labs add image

 

Vergeben Sie einen Namen, weitere Einstellungen müssen Sie jetzt noch nicht vornehmen, da wir zunächst nur den Upload des Image durchführen und erst im Anschluss das Image im DevTest Lab einbinden.

 

DevTest Labs create new image

 

Wählen Sie den Punkt „VHD“ und im dem erscheinenden Menü den obersten Punkt „Upload a VHD using PowerShell“. Es öffnet sich ein neues Fenster, indem ein PowerShell-Skript enthalten ist.

 

DevTest Labs upload Image

 

Um das Skript ausführen zu können, benötigen Sie Azure PowerShell. Das ist ein zusätzliches Paket, das nicht in der Standard PowerShell-Installation Ihrer Windows-Installation enthalten ist. Wo man Azure PowerShell beziehen kann, und wie man es installiert erfahren Sie unter diesem Link.

Kopieren Sie die Zeile 8 dieses Skripts, den Kommentar darüber benötigen Sie nicht. Er enthält jedoch die wichtige Information, dass der Link, der unter dem „Destination“-Parameter angegeben ist nur 24 Stunden gültig ist. Der Link enthält den direkten Pfad zum dem vom DevTest Lab verwendeten Storage-Account, sodass die Images an die richtige Stelle kopiert werden. Gleichzeitig enthält er auch den Storage-Key, der die Zugriffsrechte auf den Storage-Account gibt. Der Link wird in Ihrem Skript deutlich länger sein, ich haben ihn hier gekürzt, um die gesamte Skript-Zeile im Screenshot darstellen zu können.

Fügen Sie die kopierte Zeile entweder direkt in die Azure PowerShell, oder in die PowerShell ISE ein. Dem Parameter „LocalFilePath“ übergeben Sie den vollqualifizierten Pfad zu ihrem VHD-Image. Anschließend führen Sie das Skript aus, um den Upload zu starten.

 

DevTest Lab upload VHD

 

Der Vorgang kann mehrere Stunden dauern, je nach der Bandbreite die Ihnen zur Verfügung steht. Planen Sie den Upload daher mit Bedacht. Die noch offenen Konfigurationsfenster in Azure können Sie während dieser Zeit schließen, wir werden sie nach Abschluss des Uploads wieder öffnen.

Ist der Upload abgeschlossen, steht das Image in der Auswahl zur Verwendung bereit. Klicken Sie erneut auf „+ Custom image“, um das Image bereitzustellen.

 

DevTest Lab image

Unter dem Punkt „VHD“ steht nun das zuvor hochgeladen Image zur Auswahl bereit. Nachdem Sie es ausgewählt haben, müssen Sie noch die „OS configuration“ vornehmen. Wählen Sie hier aus, ob es sich bei dem Betriebssystem um Linux, oder Windows handelt und ob zuvor Sysprep auf der virtuellen Maschine ausgeführt wurde, oder nicht.

Bestätigen Sie die Konfiguration mit einen Klick auf „Ok“ und das Image wird zur Verwendung bereitgestellt.

 

DevTest Lab image overview

Danach können Sie das Image verwenden um neue virtuelle Maschinen zu erstellen.

 

In diesem Tutorial haben Sie die Möglichkeiten kennengelernt, die Ihnen Custom Images in den DevTest Labs bieten. Sie haben ein Image aus einer bestehenden virtuellen Maschine erzeugt und ein lokales Image in Azure bereitgestellt. Im letzten Teil dieser Tutorial-Reihe zeige ich ihnen, wie Sie ein eigenes Artifact Repository erstellen und zur Installation von Softwarepaketen beim Erzeugen von virtuellen Maschinen verwenden.