Ansible im Vergleich zu Terraform

URL kopieren

Ansible® und Hashicorp Terraform sind 2 Open Source-Tools, die einen IaC-Ansatz (Infrastructure as Code) zur Automatisierung von IT-Umgebungen verfolgen. Beide Tools sind für die Verwaltung der IT-Infrastruktur unerlässlich, erfüllen jedoch unterschiedliche, spezialisierte Aufgaben innerhalb des Automatisierungs-Lifecycles. 

Terraform ist ein spezielles IaC-Tool, das entwickelt wurde, um Infrastruktur sicher und wiederholbar zu erstellen, zu ändern und zu verwalten. Ansible ist eine vielseitige IT-Automatisierungs-Engine für die Konfiguration von Systemen, die Bereitstellung von Software und die Orchestrierung komplexer Aufgaben über Server, Netzwerkgeräte, Sicherheitstools und hybride Umgebungen hinweg. Die effektivsten modernen Automatisierungsstrategien nutzen Terraform und Ansible gemeinsam für ein umfassendes Management des Infrastruktur-Lifecycles.

Große Unternehmen wechseln häufig von Open Source Ansible zu Red Hat® Ansible Automation Platform, um Automatisierungsmaßnahmen zu verwalten und zu skalieren. Ansible Automation Platform bietet zusätzliche Funktionen für Unternehmen, wie zentralisierte Governance, Automation Analytics und offiziellen Support. Durch das Verständnis der Rolle von Terraform bei der Provisionierung von Infrastruktur und der Konfigurationsfunktionen von Ansible – sowie von Ansible Automation Platform für die Skalierung der Automatisierung – können Teams eine umfassende Automatisierungsstrategie entwickeln.

Wie Red Hat und Terraform zusammenarbeiten

Die Provisionierung neuer IT-Umgebungen war früher zeitaufwendig, teuer und erfolgte manuell. Da Virtualisierung, Container und Cloud Computing zu immer mehr und immer häufigeren Infrastrukturänderungen führten, wurde es unhaltbar, sich auf manuelle Prozesse zu verlassen.

An dieser Stelle kam IaC ins Spiel. 

IaC ist der Prozess der Verwaltung und Provisionierung von IT-Infrastruktur durch maschinenlesbaren Code anstelle von manueller Konfiguration oder Hardware-Manipulation. 

Die Einführung von IaC verändert die Beziehung zwischen Entwicklungs- und Operations-Teams grundlegend. Anstatt auf Schaltflächen in einer Cloud-Konsole zu klicken oder sich auf Ad-hoc-Skripte zu verlassen, erstellen Sie Konfigurationsdateien mit vollständigen Infrastrukturspezifikationen. So können Sie jedes Mal konsistent dieselbe Umgebung bereitstellen, unabhängig davon, ob das Deployment in der Entwicklungs-, Staging- oder Produktivumgebung erfolgt. Durch die Kodifizierung und Dokumentation Ihrer Infrastruktur in Dateien, die Sie bearbeiten, verteilen und unter Versionskontrolle stellen können, hilft IaC dabei, Fehler zu vermeiden, Deployments zu beschleunigen und undokumentierte Änderungen zu verhindern, die zu Konfigurationsdrift führen.  

IaC ist die Basis moderner DevOps- und Cloud-Strategien. Da diese Methodik die Infrastruktur durch automatisch ausgeführten Code definiert, benötigen Sie spezielle Tools, um diese Dateien in eine funktionierende Infrastruktur zu übertragen. Ansible, Red Hat Ansible Automation Platform und Terraform helfen dabei, IaC zu beschleunigen und optimal zu nutzen: Terraform ist auf die Erstellung der Infrastruktur spezialisiert, während Ansible sich auf die Konfiguration der darin ausgeführten Prozesse konzentriert. 

Mehr über IaC erfahren

Red Hat Ressourcen

Trotz ihrer Spezialisierung auf unterschiedliche Bereiche des Automatisierungs-Lifecycles weisen Terraform und Ansible wichtige Gemeinsamkeiten auf, die ihren Erfolg ausmachen.

Agentenloses Design

Ansible und Terraform verfügen beide über eine moderne, vereinfachte Architektur, die einfacher auszuführen ist als ältere Automatisierungssysteme. Da sie agentenlos sind, müssen Sie keine spezielle Software oder persistente Agenten auf Servern oder Ressourcen installieren, die sie verwalten. Dies erleichtert die Einrichtung erheblich. Terraform kommuniziert in erster Linie über APIs (Application Programming Interfaces) von Cloud-Anbietern, während Ansible Aufgaben mithilfe von Standardprotokollen wie SSH (Secure Shell) und APIs ausführt, um mit verwalteten Knoten zu kommunizieren. 

Open Source und Community-Netzwerk

Sowohl Ansible als auch Terraform sind grundlegende Open Source-Projekte mit einer großen Anzahl aktiver Nutzender. Dieses Community-Netzwerk bietet umfangreiche Libraries mit gebrauchsfertigen Inhalten. Mit Tausenden von Anbietern kann Terraform mit nahezu jeder Public Cloud und Plattform verbunden werden. Außerdem bietet Ansible Module und Playbooks für fast jede Konfigurationsaufgabe. So können Teams, die eines der beiden Tools verwenden, schnell Lösungen finden und Peer-Support erhalten.  

Ergänzende Automatisierungsphilosophie

Beide Tools verfolgen letztendlich das Ziel, Infrastruktur zu automatisieren. Obwohl sie spezialisiert sind, gibt es funktionale Überschneidungen: Ansible kann beispielsweise die Provisionierung übernehmen, während Terraform grundlegende Konfigurationsskripte ausführt. Das bedeutet, dass beide dasselbe Ziel haben: manuelle, fehleranfällige IT-Prozesse in wiederholbaren, konsistenten Code umzuwandeln. Dank dieses gemeinsamen Ziels können Sie Ansible und Terraform kombinieren, um Ihren gesamten Workflow zu automatisieren.

Automatisieren von Anwendungs-Deployments, Optimieren der Infrastruktur und Support kontinuierlicher Updates sowie Fehlerbehebung mit Ansible und Terraform. Dauer des Videos: 2:46.

Beide Tools sind IaC-Typen, aber zur Erfüllung ihrer Hauptaufgaben unterschiedlich aufgebaut. Die Kenntnis dieser Unterschiede hilft Ihnen dabei, die richtigen Tools für eine Aufgabe auszuwählen oder zu entscheiden, wie Sie diese integrieren. 

Deklarativ im Vergleich zu prozedural

Der wichtigste Unterschied besteht darin, wie Sie dem jeweiligen Tool seine Aufgaben zuweisen:

  • Terraform verwendet HashiCorp Configuration Language (HCL), eine deklarative Konfigurationssprache. Deklarativ bedeutet, dass Sie den gewünschten Endzustand definieren, also wie die Infrastruktur aussehen soll. Die Engine von Terraform ermittelt dann automatisch die erforderlichen Schritte, um diesen Zustand zu erreichen, und verwaltet alle Abhängigkeiten für Sie.
  • Ansible verfolgt einen überwiegend prozeduralen (oder imperativen) Automatisierungsansatz. Es verwendet Playbooks, die für Menschen lesbar in YAML geschrieben sind. Der prozedurale Ansatz bedeutet, dass Sie explizite Schritt-für-Schritt-Anweisungen dafür definieren, wie das gewünschte Ergebnis erreicht werden soll. Mit dieser aufgabenbasierten Methode können Sie die Fehlerbehebung präzise steuern und vereinfachen, da die Reihenfolge der Ausführung klar ist. Viele zugrunde liegende Ansible-Module agieren jedoch auch deklarativ und nehmen nur dann Änderungen vor, wenn das Zielsystem noch nicht den gewünschten Konfigurationsstatus aufweist. 

Zustandsbehaftet im Vergleich zu zustandslos

Dieser Unterschied wirkt sich darauf aus, wie das jeweilige Tool die Infrastruktur im Zeitverlauf anzeigt und nachverfolgt:

  • Terraform ist zustandsbehaftet. Es verwaltet eine Statusdatei, die als Single Source of Truth dient und jede von ihm bereitgestellte Infrastrukturressource sowie deren aktuelle Konfiguration nachverfolgt. Die Statusdatei ist unverzichtbar, da sie Terraform die Verwaltung des gesamten Lebenszyklus einer Ressource ermöglicht, sodass Ressourcen zuverlässig bereitgestellt, skaliert oder stillgelegt werden können, wenn sie nicht mehr benötigt werden.
  • Ansible ist weitgehend zustandslos. Es verwaltet keine permanente Statusdatei, die die gesamte Infrastruktur nachverfolgt. Stattdessen stützt es sich auf Idempotenz, also die Garantie, dass die mehrmalige Ausführung derselben Aufgabe ohne unnötige Änderungen zum gleichen Ergebnis führt. Ansible erreicht die gewünschte Konfiguration, indem es vor einer Änderung das Zielsystem direkt abfragt.

Unveränderlich im Vergleich zu veränderlich

Die Tools basieren auf unterschiedlichen Philosophien für die Handhabung von Infrastrukturaktualisierungen:

  • Terraform bevorzugt unveränderliche – oder unveränderbare – Infrastruktur. Wenn Sie eine wesentliche Änderung oder Aktualisierung vornehmen müssen, empfiehlt Terraform häufig, die alte Ressource zu entfernen und durch eine neue, korrekt konfigurierte Ressource zu ersetzen. Diese Strategie reduziert das Risiko komplexer Konfigurationsfehler, die sich im Laufe der Zeit häufen können.
  • Ansible wurde für veränderliche Infrastrukturen entwickelt, daher eignet es sich hervorragend für Änderungen an bestehenden, laufenden Systemen vor Ort. Dies ist für Day 1- und Day 2-Aufgaben erforderlich, wie das Anwenden von Sicherheits-Patches, das Ausführen von Betriebssystem-Updates oder das Anpassen von Firewall-Einstellungen auf einem Server, der nicht einfach ausgetauscht werden kann.

Konfigurationsdrift

Konfigurationsdrift liegt vor, wenn die in der Produktion ausgeführte Infrastruktur von den Vorgaben im Quellcode abweicht. Beide Tools gehen dieses Problem an, jedoch auf unterschiedliche Weise:

  • Terraform nutzt seine persistente Statusdatei, um Drift aktiv zu erkennen. Es kann die aktuell ausgeführte Infrastruktur mit der Statusdatei vergleichen und Abweichungen sofort kennzeichnen.
  • Ansible mindert Drift in der Regel, indem es kontinuierlich ausgeführt wird und sich auf idempotente Aufgaben stützt, um jederzeit die gewünschte Konfiguration sicherzustellen. So wird verhindert, dass das System zu weit vom erwarteten Zustand abweicht.

Die wichtigste Erkenntnis aus dem Vergleich von Terraform und Ansible ist, dass sie am besten zusammen verwendet werden, anstatt sich nur für ein Tool zu entscheiden. Durch Nutzung der Stärken der beiden Tools können Unternehmen eine vollständige End-to-End-Automatisierung erreichen – vom Zeitpunkt der Provisionierung der Infrastruktur bis hin zum laufenden Deployment und zur Konfiguration von Anwendungen.

Lifecycle Management

Die am weitesten verbreitete Praxis ist die einfache, sequenzielle Übergabe zwischen den Tools. Terraform übernimmt die Day 0-Provisionierung und erstellt Cloud-Infrastrukturen wie Server und Netzwerke. Sobald die Infrastruktur erfolgreich bereitgestellt ist, übernimmt Ansible die Konfiguration für Day 1, wendet Sicherheitsrichtlinien an, installiert die erforderliche Software und stellt den Anwendungscode in den neuen Ressourcen bereit. Ansible übernimmt auch Day 2-Operationen wie Patches, Updates und Konfigurationsänderungen.

Orchestrierung mit Ansible

Bei komplexen Workflows kann Ansible Automation Platform als zentraler Orchestrator dienen und die Ausführung von Terraform in einen umfassenderen Automatisierungsprozess einbinden. Ansible Automation Platform kann Aufgaben vor der Provisionierung ausführen und ein Terraform-Deployment zum Aufbau der Infrastruktur auslösen. Die Lösung kann außerdem Aufgaben nach der Provisionierung ausführen, wie die Konfiguration von Anwendungen, und lässt sich zu Tracking-Zwecken in Tools für das IT-Servicemanagement (ITSM) wie ServiceNow integrieren.

Terraform- und Ansible Automation Platform-Integrationen

Red Hat bietet eine zertifizierte Collection von Terraform-Inhalten für Ansible an. Sie enthält Module zur Unterstützung bei der Verwaltung und Provisionierung von IaC mittels HashiCorp Terraform (HCP Terraform und Terraform Enterprise). Die Collection unterstützt Automatisierungsfunktionen, die denen anderer Integrationen von Cloud-Provisionierungstools für Ansible ähneln, wie AWS CloudFormation, Azure Resource Manager und Helm.

Darüber hinaus bietet Hashicorp einen Terraform Provider für die Interaktion mit Ansible an.  Ein Terraform Provider ist ein Plugin, das Ressourcen und Datenquellen hinzufügt, die Terraform verwalten kann. Diese Provider müssen in der Terraform-Konfiguration deklariert werden, damit Terraform sie installieren und verwenden kann. Der Ansible Provider für Terraform ermöglicht Terraform die direkte Verwaltung des Ansible Inventorys. Anstatt separate Inventory-Plugins zu benötigen, um Informationen über neu provisionierte Infrastruktur manuell zu erfassen und an Ansible weiterzuleiten, automatisiert der Provider die Übergabe. Nutzende können die Verwendung eines Ansible Inventorys direkt in ihrer Terraform-Konfiguration definieren. So können Ansible Playbooks Konfigurationsaufgaben sofort nach der Erstellung auf den neuen Hosts ausführen.

Mehr über den Terraform Provider für Ansible erfahren

Die Open Source-Tools Terraform und Ansible bilden die Basis für IaC. Die Skalierung und Steuerung dieser integrierten Workflows in großen Unternehmen bringen jedoch erhebliche Herausforderungen hinsichtlich Sicherheit und Konsistenz mit sich. Red Hat Ansible Automation Platform reduziert diese Komplexität und verwandelt die von Communities gestützte Automatisierung in eine strategische Unternehmenslösung. Diese Lösung bietet die für die Verwaltung komplexer Automatisierungsprozesse erforderliche, zentrale Steuerung, die sowohl die Provisionierung mit Terraform als auch die laufende Konfiguration mit Ansible umfasst.  

Ansible Automation Platform ist ein bewährtes Subskriptionsprodukt, bei dem Open Source im Mittelpunkt steht und das Unternehmen umfassenden Lifecycle-Support bietet. Es basiert auf der Ansible-Community, die von der Erfahrung und dem Fachwissen Tausender von Mitwirkenden weltweit profitiert. Ansible Automation Platform hilft Unternehmen bei der Erstellung, Verwaltung und Skalierung ihrer Automatisierungs-Workloads. Es bietet eine flexible, stabile und sicherheitsorientierte Basis für die Bereitstellung von End-to-End-Automatisierung, einschließlich für Hybrid Cloud-Umgebungen, Edge-Standorte, Netzwerke, Sicherheit, Infrastruktur und viele weitere Use Cases.

Mehr über Ansible Automation Platform erfahren

Ressource

CI/CD-Optimierung mit Red Hat Ansible Automation Platform

Erfahren Sie, wie Sie mit Red Hat Ansible Automation Platform komplexe IT-Umgebungen effizient verwalten, Sicherheitsabläufe automatisieren und das Deployment beschleunigen können.

Red Hat Testversionen

Unsere kostenlosen Testversionen unterstützen Sie dabei, praktische Erfahrungen zu sammeln, sich auf eine Zertifizierung vorzubereiten oder zu bewerten, ob ein Produkt die richtige Wahl für Ihr Unternehmen ist.

Weiterlesen

Was ist Docker? Definition, Container und Virtualisierung

Ist Docker dasselbe wie Linux-Container? Erfahren Sie, wie Docker funktioniert, welche Vorteile es für App-Deployment hatund was es von VMs unterscheidet.

Was ist InstructLab?

InstructLab vereinfacht die Anpassung von LLMs (Large Language Models) mit privaten Daten.

IT-Automatisierung für Unternehmen mit Ansible und Puppet

Ansible und Puppet sind beide Open Source-Tools für die IT-Automation. Was unterscheidet sie? Welche Automatisierungslösung ist für Unternehmen geeignet?

Ressourcen zu Open Source

Ausgewähltes Produkt

  • Red Hat Ansible Automation Platform

    Eine Plattform für die Implementierung unternehmensweiter Automatisierung - unabhängig davon, in welcher Phase der Automatisierung Sie sich befinden.

Verwandte Artikel