Select Page

Terraform – was ist das eigentlich?

by | Aug 5, 2021 | NETWAYS

Am Tag vor der OSMC finden verschiedene Workshops statt, so auch am Tag vor der OSMC 2019. Ich habe mich dazu entschieden, den Terraform Workshop zu besuchen, weil dieser am interessantesten für mich schien. Zu dem Zeitpunkt dachte ich noch nicht, dass ich in Zukunft mehr damit Arbeiten würde – doch falsch gedacht, tatsächlich habe ich mich direkt anschließend eine ganze Zeit lang damit auseinandergesetzt und vor kurzem nochmals. Ich hatte das Ziel, die Schulungsunterlagen für unsere Trainings zu prüfen und mir die User Experience anzuschauen. Dabei habe ich schnell bemerkt, dass mehr als ein Provider problematisch ist, nicht weil Terraform das nicht kann, sondern weil ein entsprechender Lehrinhalt innerhalb dieser 3 Tage mit mehr als einem Provider nur schwer zu vermitteln wäre.  

 

Jetzt zu der Frage was ist Terraform überhaupt? 

Terraform ist ein Produkt der Firma HashiCorp, welche ihren Sitz in San Francisco hat. Terraform ist nur eines der praktischen Programme des Unternehmens, weitere Programme sind Packer und Vagrant. Terraform gehört zur Gruppe IAC (Infrastructure as Code), durch diese werden Infrastrukturen durch Code verwaltet, menschliche Fehler verringert und die Produktivität gesteigert. 

 Mit Terraform lassen sich automatisiert Maschinen deployen und verwalten. Das alles geht recht einfach und schnell auf der CLI. Ein weiterer Vorteil ist, dass Terraform mit vielen unterschiedlichen Providern und Cloud Services zur Cloud Infrastructure Automation genutzt werden kann und das sogar zeitgleich. Man kann beispielsweise unsere OpenStack Maschinen verwenden, VM’s bei Amazon Web Services und Microsoft Azure haben und kann alle Maschinen über eine Terraform Instanz steuern und kontrollieren. Wie alle Produkte, die wir verwenden und lieben, ist Terraform natürlich keine Ausnahme und auch Opensource. Alle Produkte von HashiCorp sind Opensource (ausgenommen Enterprise Versionen). 

 

Man muss sich zwar erst mit Terraform vertraut machen, aber sobald man das hat, ist Terraform sehr einfach zu bedienen. Allerdings muss man sich immer fit halten, was die Programmsprache angeht, da HashiCorp in neuen Versionen gerne mal einiges ändert. Je nachdem wie man es sieht ist Terraform Vagrant für Server. Aber nicht nur große Cloud Provider lassen sich verwalten, sondern auch DNS-Dienste (hier eine detaillierte Liste mit unterstützten Providern https://www.terraform.io/docs/providers/index.html).  

 

Die Konfiguration von Terraform erfolgt über eine oder mehrere Dateien welche auf .tf enden. Wie die Datei(en) heißen, ist dabei völlig egal. Wie bereits angedeutet ist es egal, ob alles in einer Datei steht oder man mehrere Dateien hat. Es empfiehlt sich aus Gründen der Übersichtlichkeit eine Provider-, Main- und Resources.tf Datei anzulegen. In der Provider.tf (wie der Name schon verrät) wird der Provider bzw. die Provider und deren Zugangsdaten und Projekte angelegt. In der Main.tf stehen Dinge wie Image (Betriebssystem), Ressourcen, Größe der Festplatte, aber auch der SSH Key des Nutzers. In der Ressources.tf stehen Dinge wie Security Groups, Konfiguration der Subnetzeaber auch IP-Konfigurationen, usw…  

 

Sobald alles vollständig konfiguriert ist, führt man $ terraform init und $ terraform apply aus und, wenn alles richtig ist, hat man seine laufende(n) VM(s). Und das, ohne jede einzeln deployen zu müssen. Das verringert den Zeitaufwand sehr stark und minimiert die Fehlerquote. 

 

Terraform ist also gerade wenn man viel mit virtuellen Maschinen und unterschiedlichen Providern arbeitet ein sehr hilfreiches und praktisches Tool, welches sehr nützlich sein kann. Ich kann Terraform (wie auch die anderen Produkte von HashiCorp) nur empfehlen. Es ist wirklich leicht zu bedienen und erleichtert die Arbeit ungemein. 

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

More posts on the topic NETWAYS

NETWAYS stellt sich vor – Kleon Rockenbach

Name: Kleon Rockenbach Alter: 29 Position bei NETWAYS: Systems Engineer Bei NETWAYS seit: April 2024       Was genau gehört zu Deinem Aufgabenbereich bei NETWAYS? Als Teil des MyEngineer-Teams bin ich aktuell für den First-Level-Support unserer Kunden...

Monthly Snap Juni 2024

Hallo zusammen! Im Juni stand dieses Jahr nicht nur die stackconf im Mittelpunkt, denn Anfang des Monats fand auch der Icinga Summit in Berlin statt. Ein hervorragender Monat also! Aber, wie immer, hatten wir in unserem Blog eine gute Themen- Mischung für Euch!  ...