Bojan Konic

Bojan Konic
24.02.2017
0 Kommentar(e)

Azure Virtual Machines kosten insbesondere dann Geld, wenn sie laufen. Bei Entwicklungs- und Testumgebungen ist es daher meist nicht erwünscht, dass die zugehörigen virtuellen Server Tag und Nacht in Betrieb sind. Das manuelle Ausschalten über das Azure Portal ist natürlich eine Option. Dies geht aber ( zumindest in meinem Fall ) häufig vergessen und führt dann entweder zu unerwünschten Kosten oder lässt das Azure-Budget in wenigen Tagen auf Null schrumpfen.

Mit Azure Automatisation lässt sich dieses Problem überraschend einfach in wenigen Minuten lösen.

Schritt 1: Neues Automatisierungskonto erstellen

Im neuen Azure Portal auf das grüne Pluszeichen klicken und nach "Automation" suchen.


Einen Namen geben und - falls erwünscht - eine neue Ressourcengruppe erstellen lassen.

Insbesondere interessant ist der Punkt "Ausführendes Azure-Konto erstellen". Dies nimmt uns einiges an Arbeit ab, da direkt Konten für den Classic- und den ARM-Modus erstellt werden, die später für die Ausführung der Runbooks verwendet werden können.

Schritt 2: Runbook aus Katalog importieren



Durch Klick auf "Runbookkatalog" öffnet sich eine grosse Auswahl an fixfertigen Runbooks.
Nach folgendem Eintrag suchen ("Stop Azure V2 VMS") und diesen importieren.

Anschliessend das Runbook bearbeiten und ohne Anpassungen veröffentlichen. Erst nach der Veröffentlichung ist es möglich, einen Zeitplan oder einen Webhook dazu zu erstellen.

Schritt 3: Zeitplan erstellen

Da wir nun das Runbook haben, müssen wir noch festlegen, wann und wie oft es ausgeführt werden soll. Auf "Zeitplan klicken" und einen neuen Zeitplan erstellen.



Da wir bei der Erstellung des Automatisierungsaccounts die ausführenden Konten erstellen liessen und unser Runbook diese Konten als Default verwendet, ist es nun gar nicht nötig, die Parameter anzupassen.
Mit der oben abgebildeten Konfiguration werden nun jeden Abend ALLE VM's in der Subscription zum angegebenen Zeitpunkt heruntergefahren.

Das Runbook bietet weitere Parameter, die optional ausgefüllt werden können. Damit lassen sich  zum Beispiel einzelne VMs oder die VMs einer spezifischen Ressourcengruppe herunterzufahren.

Anmerkung: Dieses Runbook betrifft nur VMs der zweiten Generation, also keine "classic" VMs. Für "classic" VMs gibt es jedoch separate Runbooks.

Optionaler Schritt: Webhook einrichten

Webhooks sind eine tolle Sache: Durch einen einfachen HTTP Post kann ich von einer beliebigen Applikation (egal ob Mobile App, Powershell etc.) das Runbook ausführen lassen.

Wichtig ist hierbei zu beachten, dass die generierte URL mit einem Passwort gleichzusetzen ist. Der Securtity-Token ist direkt in die URL eingebettet. Entsprechend sorgfältig sollte man mit der Weitergabe der URL sein.

Um einen neunen Webhook zu erstellen, einfach in  der Runbook-Übersicht auf "Webhook" klicken.



Achtung: Die URL wird automatisch generiert und nur einmal angezeigt.Wie beim Zeitplan, können die Parameter alle leergelassen werden, sofern ALLE VM's heruntergefahren werden sollen.
Wenn der Webhook erstellt ist, kann mit einem einfachen HTTP POST auf die URL das Runbook gestartet werden.
Bei mir habe ich das in meine Powershell-Umgebung als einfache Funktion implementiert, die beim Starten von Powershell automatisch geladen wird. So kann ich mit dem Aufruf von "start-sp2016" beispielsweise meine SharePoint-Umgebung in Azure starten und mit "Stop-Sp2016" alle Server der Umgebung wieder herunterfahren.

Tags

Kommentar hinterlassen




= seven + eight

Kommentar(e)

Noch keine Kommentare.