Terraform lernen - Einen App Service statt einem Scale Set bereitstellen

Wie in meinem vorherigen Beitrag erwähnt, ist es als Anfänger nicht so einfach, alles in Terraform umzusetzen. Die Herausforderung war, eine Website in Azure bereitzustellen, die hinter einem Load Balancer skalieren kann. Nach der Demonstration mit Virtual Machine Scale Sets möchte ich den Weg zeigen, den ich mit Azure App Services gefunden habe. Wenn man sich das einfache Beispiel in der Dokumentation ansieht, erkennt man, dass es sehr einfach ist, eine Website in Azure bereitzustellen. Daraus entstand meine Idee: Es kann doch nicht so kompliziert in Terraform sein. ...

31.03.2020 · 4 Minuten · Niels Ophey

Terraform lernen - Ein Virtual Machine Scale Set definieren

Jetzt, da wir eine VM haben, die eine Website bereitstellt, ist es ein gängiges Muster, nicht nur eine VM bereitzustellen. Mehrere VMs werden genutzt, um die Last zu verteilen. In Azure heißt diese Funktion Virtual Machine Scale Set (siehe die Dokumentation). Um dies in Terraform umzusetzen, benötigen wir den Ressourcentyp azurerm_linux_virtual_machine_scale_set. Die Dokumentation zeigt ein Beispiel zur Verwendung. Bitte zuerst lesen! ACHTUNG - Ich habe alles mehrfach durchgeführt und viele mögliche Parameter ausprobiert, um das Scale Set inklusive Apache-Webserver bereitzustellen. Ich habe nicht herausgefunden, warum die Konfiguration der Custom Script Extension beim initialen Deployment nicht funktioniert. Nur wenn man die VM-Anzahl nach dem Deployment ändert, wird das Custom Script bereitgestellt. Dieses Problem kann man hier sehen. ...

31.03.2020 · 5 Minuten · Niels Ophey

Terraform lernen - Wie wird die Linux-VM zum Webserver

Die nächste Iteration der VM ist die Konfiguration eines Webservers auf der VM sowie das Hinzufügen einer Auto-Scaling-Funktion und eines Load Balancers. Da ich mich mit Linux nicht so gut auskenne, habe ich einen etwas anderen Ansatz gewählt. Yevgeniy verwendet in seinem Buch die folgende “user_data”-Option, um eine Website über die VM bereitzustellen. user_date = <<-EOF #!/bin/bash echo "Hello, World" > index.html nohup busybox httpd -f -p 8080 & EOF Ich habe versucht, dies als Skript in der gerade bereitgestellten VM zum Laufen zu bringen, aber ich habe nicht herausgefunden, wie das am besten geht. Vielleicht eine Herausforderung für später. Andersherum betrachtet: Was ist der normale Weg in Azure, um etwas in einer gerade bereitgestellten VM auszuführen? Normalerweise verwende ich die Custom Script Extensions, um einen Befehl in einer Maschine auszuführen. Besonders bei Windows-VMs würde ich hier eine Desired State Configuration nutzen. Mehr über Custom Script Extensions für Linux-VMs findet ihr in diesem Docs-Artikel. ...

27.03.2020 · 3 Minuten · Niels Ophey

Terraform lernen - Die erste VM bereitstellen

Nachdem Terraform auf dem Rechner installiert ist, mit dem wir unsere ersten Cloud-Ressourcen bereitstellen wollen, ist das erste Beispiel in Kapitel 2 die Bereitstellung einer VM. Einer Linux-basierten VM. Alle Beispiele aus dem Buch von Yevgeniy findet ihr in diesem GitHub-Repo. Wie machen wir das in Azure? Die erste VM in Azure bereitstellen Ein wesentlicher Unterschied zu AWS ist, dass wir in Azure Ressourcen immer in einer Resource Group (RG) bereitstellen – daher ist das Skript in Terraform nicht so einfach wie in AWS. ...

19.03.2020 · 4 Minuten · Niels Ophey

Terraform lernen - Erste Schritte...

Nach dem Lesen von Kapitel 1 des Buches war es an der Zeit, meinen Rechner für den Einsatz von Terraform vorzubereiten, um Deployments in Azure zu skripten. Also suchte ich in den Microsoft Docs nach einer kurzen Anleitung und fand diese Beschreibung. Erster Schritt - Terraform auf meinem Rechner installieren Ich entschied mich, Terraform im Windows Subsystem for Linux (WSL) auf meinem Windows-10-Rechner zu installieren. Ich bin im Fast-Ring des Windows-10-Insider-Programms – daher konnte ich bereits WSL2 nutzen. Wenn ihr mehr über WSL2 erfahren wollt, besucht die Microsoft-Seite https://aka.ms/wsl2. Um Terraform in meinem WSL2 zu installieren, öffnete ich die Bash und gab folgende Befehle ein (nutzt sudo falls erhöhte Rechte benötigt werden): ...

15.03.2020 · 3 Minuten · Niels Ophey

Terraform lernen

Wie ich angefangen habe Ich habe mich entschieden, mehr über den Einsatz von Terraform zur Bereitstellung von Diensten in Azure zu lernen. In der Vergangenheit habe ich meine Dienste meist über das Portal, die Azure-CLI oder mit ARM-Templates in Azure bereitgestellt. In vielen Diskussionen rund um Automatisierung hörte ich immer wieder Leute über Terraform als ihre bevorzugte Lösung für die Skripterstellung von Deployments sprechen. Insbesondere dank meines Kollegen Arnaud Lheureux – wir saßen zusammen auf der Microsoft Ready am Stand rund um das Cloud Adoption Framework und er zeigte mir, was er bereits mit Terraform gemacht hatte, um eine Landing Zone in Azure bereitzustellen. Das war der Impuls, mehr über Terraform zu lernen… ...

15.03.2020 · 2 Minuten · Niels Ophey