Wie Sie mit Terraform und Proxmox Testumgebungen erzeugen

Wer mit den großen Cloudanbietern arbeitet, nutzt etwa Terraform, um Workflows zu automatisieren. Es hilft auch im Proxmox-Homelab, Testumgebungen zu schaffen.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 5 Kommentare lesen
, KI Stable Diffusion  Bearbeitung c't

(Bild: KI Stable Diffusion | Bearbeitung c't)

Lesezeit: 16 Min.
Inhaltsverzeichnis

IT-Infrastruktur hat in den vergangenen Jahren massiv an Komplexität zugenommen. Die Umstellung auf Microservices und die Verlagerung von Applikationen in sogenannte Public Clouds wie AWS, Azure und Google Cloud führt dazu, dass die klassische Definition von Infrastruktur als Rechenleistung (Compute), Netzwerk (Networking) und Speicher (Storage), die man früher als Gesamtpaket gemietet hat, nicht mehr ausreicht. Die vielfältigen Angebote der Cloud-Provider bilden eine zusätzliche Abstraktionsschicht zwischen physischer Hardware und Anwendungen in Containern, die meist von Orchestrierern wie Kubernetes oder Nomad gesteuert werden und außerdem externe Ressourcen wie Datenbanken, Objektspeicher sowie Loadbalancer für die Lastverteilung brauchen.

Diese komplexen Anforderungen kann man theoretisch manuell erfüllen, indem ein Administrator im Auftrag des Entwicklungsteams in der Verwaltungsoberfläche eines Cloudanbieters die nötigen Komponenten zusammenklickt. Doch das ist langsam, mühselig und führt außerdem schnell zum sogenannten Konfigurationsdrift. Der tatsächliche Zustand der Infrastruktur weicht dann vom angestrebten Zustand ab, beispielsweise, weil jemand vergessen hat, die drei angemieteten Server für eine Kubernetes-Testumgebung abzustellen, obwohl sie nicht mehr benötigt werden.Das Konzept Infrastructure as Code (IaC) ist angetreten, diese Probleme zu lösen, indem es DevOps-Prinzipien wie Versionskontrolle und Continuous Integration / Continuous Delivery (CI/CD) auf die Bereitstellung von Infrastruktur überträgt. Nach dieser Philosophie sollte die Definition von Infrastruktur genau wie anderer Quellcode behandelt werden, beispielsweise versioniert in einem Git-Repository.

Mehr zu Infrastructure as Code

Zu den wichtigsten IaC-Werkzeugen gehören Terraform (Download) von HashiCorp und Ansible von Red Hat. Beide überschneiden sich im Funktionsumfang, setzen aber unterschiedliche Schwerpunkte. Ansible ist in erster Linie ein Konfigurationsmanagementsystem und spielt seine Stärken beispielsweise in der Einrichtung von Hosts aus, die Sie vorher mit Terraform provisioniert haben. Mit Clouds wie AWS, Azure oder Google Cloud interagiert Terraform über sogenannte Provider: Das sind Plug-ins, die vom API des jeweiligen Anbieters abstrahieren. Die großen Plattformen haben zwar auch eigene IaC-Lösungen im Portfolio, Terraform arbeitet durch seine Provider aber Cloud-agnostisch. Weil Terraform und die Provider Open-Source-Software sind, kann prinzipiell jeder einen Provider schreiben. Um das Folgende nachzuspielen, brauchen Sie eine physische Maschine, auf der Sie Proxmox (Download) installieren. Für unsere Anleitung brauchen Sie etwas Proxmox- und Linux-Vorerfahrung.