pixel
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. 

Nathaniel Donahue
Nathaniel Donahue
Systems Engineer

Nathaniel hat 2022 seine Ausbildung zum Fachinformatiker für Systemintegration bei NETWAYS erfolgreich abgeschlossen. Seitdem unterstützt er sein Team im Bereich Operations vor allem beim Betriebsconsulting. In seiner Freizeit ist Nathaniel gerne unterwegs mit Freunden oder reist in der Gegend herum. Ansonsten schnappt er sich gerne mal sein Fahrrad oder geht Schwimmen.

0 Comments

Submit a Comment

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

More posts on the topic NETWAYS

Monthly Snap September 2023

Hallo zusammen! September war bei NETWAYS natürlich vor Allem der Monat der stackconf! Alle die für den Anlass nach Berlin „gepilgert“ sind waren sich einig, dass es eine grandiose Konferenz war, die viel zu schnell zu Ende ging!   Stackconf! Hier könnt ihr über...

Why We’re Excited About DevOps Camp 2023!

This year, our NETWAYS Web Services Team is highly motivated to participate in DevOps Camp in Nuremberg! After a short break since stackconf in Berlin, we are back at a conference. We are delighted to be able to support DevOps Camp once again. In this article, we...

Finance and Administrations on Tour!

Lange haben wir uns darauf gefreut, und am Wochenende war es dann endlich so weit: F&A ist endlich zum Teamevent aufgebrochen! Wir sind in die wunderschöne Stadt Würzburg gefahren, und haben dort unter anderem eine geführte Weinwanderung genossen!   Aber...

check_influxdb ist jetzt öffentlich verfügbar!

InfluxDB ist eine Zeitreihendatenbank, die gerne für Performance Monitoring genutzt wird. Zusammen mit dem Telegraf Agenten, kann man so ziemlich alle vorstellbaren Formate einliefern und diese in Metriken oder Logs transformieren. Hat man die Daten einmal in der...