Dreaming Andy - Fotolia

Ansible vs. Terraform vs. Vagrant: Die Unterschiede

Ansible, Terraform und Vagrant sind gängige Plattformen zur Infrastrukturautomation mit spezifischen Anwendungsfällen, Vor- und Nachteilen. Wir helfen bei der Auswahl eines Tools.

Die meisten Netzwerk- und IT-Profis dürften schon von Ansible, Terraform und Vagrant gehört haben und fragen sich wahrscheinlich, was sie miteinander zu tun haben. Obwohl die drei Plattformen zur Automation der Infrastruktur ähnlich erscheinen, erfüllen sie unterschiedliche Funktionen.

Nachfolgend vergleichen wir Ansible, Terraform und Vagrant. Dabei gehen wir auf ihre Vorteile, Nachteile und mögliche Anwendungsfälle ein.

Ansible

Ansible ist ein Python-basiertes Automatisierungs-Tool für die IT-Systemkonfiguration, das in etwa vergleichbar ist mit Chef und Puppet in der Serverwelt sowie Nornir in der Netzwerkwelt. Es hat eine breite Akzeptanz als Netzwerkautomatisierungssystem erlangt. Das liegt zum Teil an seiner agentenlosen Architektur – es muss kein Agent auf das zu automatisierende System geladen werden. Andere Netzwerkautomatisierungssysteme wie NAPALM lassen sich leicht in Ansible integrieren, was die Herstellerunterstützung erweitert und dessen Attraktivität erhöht.

Die Aktionen von Ansible werden mithilfe von YAML-formatierten Dateien, sogenannten Playbooks, konfiguriert. Damit kommen Netzwerktechniker oft besser zurecht als mit programmatischen Automatisierungs-Frameworks wie Nornir. Es gibt eine große Ansible-Community und viele Ressourcen, um die Verwendung von Ansible zu erlernen. Red Hat bietet eine kommerziell unterstützte Version namens Ansible Tower an.

Vorteile

Zu den Vorteilen von Ansible zählen:

  • Es verwendet YAML-formatierte Playbook-Dateien, was für Netzwerktechniker sehr nützlich ist.
  • Es lässt sich ohne Agents betreiben.
  • Es ist Multivendor-fähig.
  • Es hat eine große Community mit Open-Source-Unterstützung und Hersteller-Support.

Nachteile

Zu den Nachteilen von Ansible gehören die folgenden Punkte:

  • Es kann langsam sein, wenn es eine große Menge an Informationen erfasst. Aus diesem Grund wurde Nornir entwickelt.
  • Seine Funktionen sind eher auf die gerätespezifische Konfiguration zugeschnitten.

Anwendungsfälle

Ansible wird häufig zur Konfiguration bereits vorhandener Systeme verwendet. Die Automatisierung von Netzwerkgeräten ist eine besondere Stärke.

Terraform

Terraform ist ein IaC-Tool (Infrastructure as Code) für die Erstellung, Verwaltung und Dekommissionierung großer Data-Center-Infrastrukturen. Die Konfigurationen werden in einer deklarativen Sprache, der HashiCorp Configuration Language (HCL), angegeben. Wenn sich die Konfiguration ändert, bestimmt Terraform die Schritte, um eine Infrastruktur in den neuen gewünschten Zustand zu überführen. Stellen Sie sich Terraform als ein Tool zum Management der Cloud-Infrastruktur vor, das über mehrere Cloud Provider hinweg funktioniert, zum Beispiel AWS, Microsoft Azure und Google Cloud Platform. Es eignet sich ideal für den gesamten Lebenszyklus einer Data-Center-Infrastruktur.

Ansible, Terraform und Vagrant führen alle in irgendeiner Form Automatisierungs-Aufgaben durch. Deutliche Unterschiede ergeben sich jedoch bei ihrer Funktionalität.

Terraform besitzt keine GUI, was man als Nachteil ansehen könnte, obwohl es keiner ist. Die deklarative Sprache ist ideal für die Arbeit in einem Code Repository mit Versionskontrolle, was für IaC notwendig ist. Zu viele Systeme mit grafischer Benutzeroberfläche führen zu einem komplexen Labyrinth von Fenstern mit Auswahlmöglichkeiten und Dialogboxen. Das Ganze würde sich auch mit wenigen Befehlszeilen erledigen lassen.

Eine hilfreiche Funktion von Terraform ist die Planungsphase, die zeigt, welche Änderungen auftreten würden, ohne sie tatsächlich vorzunehmen. Stellen Sie sich das als eine Art Test für eine beabsichtigte Änderung vor. Die Ausgabe ermöglicht es den IT-Teams zu überprüfen, ob die Änderungen dem Plan entsprechen und ob der gewünschte Endzustand erreicht wird.

Vorteile

Zu den Vorteilen von Terraform zählen:

  • IT-Teams können Infrastruktur bereitstellen und verwalten, unabhängig vom Cloud Provider.
  • Es integriert mehrere Cloud-Dienste in externe Funktionen, etwa E-Mail und DNS.
  • Die Planungsphase ermöglicht Einblick in Änderungen, bevor sie angewendet werden.

Nachteile

Die deklarative Konfigurationssprache von Terraform kann ein Hindernis für die Einführung sein.

Anwendungsfälle

Terraform kann für die Bereitstellung und Verwaltung von Cloud-basierter Infrastruktur verwendet werden. Es eignet sich insbesondere für die Automatisierung von Änderungen an einer größeren Infrastruktur, die aus mehreren Komponenten besteht.

Abbildung 1: Vergleich von Ansible, Terraform und Vagrant anhand der Vorteile, Nachteile und Anwendungsfälle.
Abbildung 1: Vergleich von Ansible, Terraform und Vagrant anhand der Vorteile, Nachteile und Anwendungsfälle.

Vagrant

Vagrant wird am häufigsten verwendet, um die konsistente Erstellung einer kleinen Menge von VMs zu automatisieren. Der gebräuchlichste Anwendungsfall ist die Replikation einer Entwicklungsumgebung unter mehreren Entwicklern, die die Entwicklungskonsistenz gewährleisten müssen. Das ist besonders wichtig für die Konsistenz von Versionen einer Softwarebibliothek, Umgebungsvariablen und Versionen unterstützender Software.

Vagrant kann andere Automatisierungs-Tools, wie Ansible, Puppet oder Chef, einbinden, um bestimmte VM-Konfigurationsaufgaben durchzuführen. Die Entwickler geben die Softwareversion und die Elemente an, die sie in der Umgebung haben möchten, und Vagrant führt die notwendigen Aktionen aus, um eine VM mit dieser Konfiguration zu erstellen. Andere Entwickler können die gleiche Vagrant-Konfigurationsdatei verwenden, um die VM schnell zu replizieren.

Die Konsistenz der Entwicklungsumgebung ist entscheidend für die Beseitigung von Fehlern, die durch Unterschiede zwischen den Umgebungen der einzelnen Softwareentwickler entstehen. Vagrant ist zudem wertvoll, wenn es um die schnelle und das konsistente Instanziieren von Softwaretestsystemen geht. Auf diese Weise können die Entwickler beim Testen neuer Funktionen und Bugfixes einfach Testsysteme starten.

Vorteile

Zu den Vorteilen von Vagrant zählen:

  • Teams können auf einfache Weise Standardumgebungen für Entwicklung und Tests erstellen.
  • Viele Softwareentwicklungsorganisationen haben es übernommen.

Nachteile

Vagrant eignet sich nicht gut für das Handling von Änderungen an der Infrastruktur.

Anwendungsfälle

Vagrant wird am häufigsten verwendet, um konsistente Entwicklungs- und Testumgebungen für VMs zu erstellen.

Die Auswahl des passenden Tools

Ansible, Terraform und Vagrant führen alle in irgendeiner Form Automatisierungsaufgaben durch. Deutliche Unterschiede ergeben sich jedoch bei ihrer Funktionalität. Es ist nicht ungewöhnlich, dass alle drei in einem Unternehmen eingesetzt werden: Ansible für das Management der Netzwerkkonfiguration, Terraform für die Verwaltung der Cloud-Infrastruktur über einen oder mehrere Cloud Provider hinweg und Vagrant für die Standardisierung von Softwareentwicklung und Testplattformen.

Wie immer empfiehlt es sich, das Tool auszuwählen, das zu Ihren Geschäftsanforderungen passt.

Erfahren Sie mehr über Software-defined Networking