<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Terraform on Niels Ophey</title><link>https://www.ophey.net/de/tags/terraform/</link><description>Recent content in Terraform on Niels Ophey</description><generator>Hugo</generator><language>de</language><lastBuildDate>Tue, 31 Mar 2020 17:42:14 +0200</lastBuildDate><atom:link href="https://www.ophey.net/de/tags/terraform/index.xml" rel="self" type="application/rss+xml"/><item><title>Terraform lernen - Einen App Service statt einem Scale Set bereitstellen</title><link>https://www.ophey.net/de/blog/learn-terraform-app-service/</link><pubDate>Tue, 31 Mar 2020 17:42:14 +0200</pubDate><guid>https://www.ophey.net/de/blog/learn-terraform-app-service/</guid><description>&lt;p>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 &lt;a href="https://azure.microsoft.com/de-de/services/app-service/">Azure App Services&lt;/a> gefunden habe.&lt;/p>
&lt;p>Wenn man sich das einfache Beispiel in der &lt;a href="https://docs.microsoft.com/de-de/azure/app-service/app-service-web-get-started-html">Dokumentation&lt;/a> 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.&lt;/p></description></item><item><title>Terraform lernen - Ein Virtual Machine Scale Set definieren</title><link>https://www.ophey.net/de/blog/learn-terraform-vmss/</link><pubDate>Tue, 31 Mar 2020 11:01:08 +0200</pubDate><guid>https://www.ophey.net/de/blog/learn-terraform-vmss/</guid><description>&lt;p>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 &lt;a href="https://docs.microsoft.com/de-de/azure/virtual-machine-scale-sets/tutorial-create-and-manage-powershell">Dokumentation&lt;/a>).&lt;/p>
&lt;p>Um dies in Terraform umzusetzen, benötigen wir den Ressourcentyp &lt;em>azurerm_linux_virtual_machine_scale_set&lt;/em>. Die &lt;a href="https://www.terraform.io/docs/providers/azurerm/r/linux_virtual_machine_scale_set.html">Dokumentation&lt;/a> zeigt ein Beispiel zur Verwendung.&lt;/p>
&lt;h2 id="bitte-zuerst-lesen">Bitte zuerst lesen!&lt;/h2>
&lt;blockquote>
&lt;p>&lt;strong>ACHTUNG&lt;/strong> - 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 &lt;a href="https://github.com/terraform-providers/terraform-provider-azurerm/issues/5860">hier&lt;/a> sehen.&lt;/p></description></item><item><title>Terraform lernen - Wie wird die Linux-VM zum Webserver</title><link>https://www.ophey.net/de/blog/learn-terraform-web-server/</link><pubDate>Fri, 27 Mar 2020 16:15:52 +0200</pubDate><guid>https://www.ophey.net/de/blog/learn-terraform-web-server/</guid><description>&lt;p>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 &amp;ldquo;user_data&amp;rdquo;-Option, um eine Website über die VM bereitzustellen.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>user_date &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">&amp;lt;&amp;lt;-EOF
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> #!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> echo &amp;#34;Hello, World&amp;#34; &amp;gt; index.html
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> nohup busybox httpd -f -p 8080 &amp;amp;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> EOF&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>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 &lt;a href="https://docs.microsoft.com/de-de/azure/virtual-machines/extensions/custom-script-linux">Docs-Artikel&lt;/a>.&lt;/p></description></item><item><title>Terraform lernen - Die erste VM bereitstellen</title><link>https://www.ophey.net/de/blog/learn-terraform-deploy-first-vm/</link><pubDate>Thu, 19 Mar 2020 15:21:07 +0200</pubDate><guid>https://www.ophey.net/de/blog/learn-terraform-deploy-first-vm/</guid><description>&lt;p>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 &lt;a href="https://github.com/brikis98/terraform-up-and-running-code">diesem GitHub-Repo&lt;/a>.&lt;/p>
&lt;p>Wie machen wir das in Azure?&lt;/p>
&lt;h2 id="die-erste-vm-in-azure-bereitstellen">Die erste VM in Azure bereitstellen&lt;/h2>
&lt;p>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.&lt;/p></description></item><item><title>Terraform lernen - Erste Schritte...</title><link>https://www.ophey.net/de/blog/learn-terraform-get-started/</link><pubDate>Sun, 15 Mar 2020 16:20:59 +0200</pubDate><guid>https://www.ophey.net/de/blog/learn-terraform-get-started/</guid><description>&lt;p>Nach dem Lesen von Kapitel 1 des &lt;a href="https://www.terraformupandrunning.com/">Buches&lt;/a> 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 &lt;a href="https://docs.microsoft.com/azure/terraform/terraform-install-configure">Beschreibung&lt;/a>.&lt;/p>
&lt;h2 id="erster-schritt---terraform-auf-meinem-rechner-installieren">Erster Schritt - Terraform auf meinem Rechner installieren&lt;/h2>
&lt;p>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 &lt;a href="https://aka.ms/wsl2">https://aka.ms/wsl2&lt;/a>. Um Terraform in meinem WSL2 zu installieren, öffnete ich die Bash und gab folgende Befehle ein (nutzt &lt;em>sudo&lt;/em> falls erhöhte Rechte benötigt werden):&lt;/p></description></item><item><title>Terraform lernen</title><link>https://www.ophey.net/de/blog/learn-terraform/</link><pubDate>Sun, 15 Mar 2020 14:36:21 +0200</pubDate><guid>https://www.ophey.net/de/blog/learn-terraform/</guid><description>&lt;h2 id="wie-ich-angefangen-habe">Wie ich angefangen habe&lt;/h2>
&lt;p>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&amp;hellip;&lt;/p></description></item></channel></rss>