DevOps: Red Hat präsentiert Ansible 2.0

Das Team hat für Version 2 der DevOps-Plattform die Codebasis runderneuert. Der Parser gibt jetzt detaillierte Infos zu Fehlern. Blöcke bringen logische Einheiten zusammen und ermöglichen Exception-Handling. Zusätzlich gibt es über 200 neue Module.

In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen
Red Hat veröffentlicht Ansible 2.0
Lesezeit: 3 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

Gut ein Jahr dauerte die Arbeit an Version 2.0 von Ansible, einer mittlerweile von Red Hat betriebenen Open-Source-Plattform zur Orchestrierung und allgemeinen Konfiguration und Administration von Computern. Der Blog-Beitrag zur Veröffentlichung weist besonders auf die starke Einbindung der Community hin: 300 Nutzer haben Code zu dem ursprünglich als v2 entwickelten Kern beigetragen, 500 Nutzer waren an der Entwicklung der Module beteiligt.

Relativ früh entschieden die Macher, dass sie einige Teile der Codebasis neu gestalten wollten. So entwickelten sie beispielsweise den Code zum Parsen der Playbooks und anderer in der Markup-Sprache YAML erstellter Dateien von Grund auf neu. Playbooks sind die Sprache für die Orchestrierung, Verteilung und Konfiguration durch Ansible. Der frisch gestaltete Parser vereinfacht das Hinzufügen neuer Sprachelemente. Dabei war die Rückwärtskompatibilität zu vorhandenen Playbooks eine wichtige Voraussetzung.

Der Parser soll jetzt nützlichere Fehlerinformationen geben und möglichst eine Lösung zur Behebung vorschlagen. Include Tasks führt Ansible nun dynamisch aus, wodurch Schleifen innerhalb der Includes wieder möglich sind. Sie waren in Ansible 1.6 entfernt worden, da sie in 1.x zu Problemen führen konnten.

Neu ist das Konzept von Blöcken, mit dem Entwickler zusammenhängende Tasks gruppieren. Gleichzeitig hält damit die Verarbeitung von Exceptions innerhalb der Playbooks Einzug in Ansible. Das Prinzip orientiert sich an anderen Programmiersprachen und setzt wie Python auf try/except/finally-Strukturen zur Behandlung der Ausnahmen.

Sogenannte Execution Strategies erlauben die Ausführung von Tasks entweder linear oder frei. Linear entspricht dem bisherigen Vorgehen: Jede Aufgabe wird auf allen Hosts ausgeführt, bevor das System zum nächsten Schritt übergeht. Die freie Strategie erlaubt jedem Hosts die Abarbeitung der Tasks, ohne auf die jeweils anderen Hosts zu warten. Da die Strategien als Plug-ins umgesetzt sind, können Nutzer auch ihre eigenen definieren.

Auch wenn die Rückwärtskompatibilität im Fokus der Entwicklung stand, müssen Entwickler eventuell einige Anpassungen vornehmen. Beispielsweise haben die Macher die API aufgeräumt, um Code-Duplikate zu entfernen und eine sauberere Struktur zu schaffen. Daher erfordern eigene Plug-ins potenziell Änderungen. Auch sind nicht alle vorhandenen Playbooks mit dem neuen Parser kompatibel. Die dynamischen Includes bringen potenziell Probleme bei der Verwendung von Tags und Handlern mit sich.

Insgesamt 200 neue Module bietet Ansible 2.0, darunter ein neues Set für die Verwaltung von OpenStack und eines für die ausgebaute Anbindung an Amazon Web Services. Sowohl für Windows als auch für VMware-Umgebungen gibt es erweiterte Funktionen. Das Docker-Modul wurde ebenfalls grundlegend verbessert.

Im vergangenen Jahr hatte Red Hat Ansible übernommen. Bereits davor hatte das Fedora-Projekt das in Python geschriebene Konfigurationswerkzeug im Einsatz. Ein wichtiger Grund für die Übernahme war die Stärkung des DevOps-Segments von Red Hat. Direkte Mitbewerber zu Ansible sind Chef, Puppet und SaltStack.

Die komplette Liste der Änderung ist im Change-Log zusammengefasst. Die Open-Source-Software steht auf der Ansible-Website zum Download bereit. (rme)