Die Zukunft von Ansible
Die Einführung von Collections ist nicht die einzige größere Neuerung bei Ansible in letzter Zeit. Bis Version 2.8 wurde Ansible als ein großes Paket angeboten. Darin enthalten war eine Vielzahl an Modulen, die die Ansible-Community entwickelte und pflegte. Die Einführung von Collections geschah im Zuge des Releases von Version 2.9: Ein Format zur einfachen Paketierung und Verbreitung von Ansible Inhalten. Collections ermöglichen die Zusammenfassung von Modulen, Playbooks, Rollen, Dokumentation etc. So ist beispielsweise eine separate Collection für die Foreman Ansible Modules zur Ansteuerung von orcharhino enthalten.
Installiert man Ansible 2.10 via pip, so erhält man 2 Pakete:
- ansible-base: ansible-base beinhaltet die Grundmechanik von Ansible sowie eine Reihe von Modulen und Plugins. Dies ist der Teil, der offiziell von Red Hat unterstützt wird.
- general Collection: Hier sind alle Module und Plugins enthalten, die zuvor (<2.10) Teil des Ansible Pakets waren. Wie der Name erahnen lässt wird die Collection durch die Entwickler:innengemeinde um das Ansible Projekt gepflegt und weiterentwickelt.
Durch Collections verbesserten sich die Möglichkeiten für Erweiterungen sowie die Wartung deutlich. Die aktuelle Major Version ist Ansible 3.0.0. ansible-base wird dabei nicht mitinstalliert, sondern ist zu einer Abhängigkeit geworden. Somit besteht das Ansible Paket nur noch aus über 85 von der Community und Red Hat Partnern gepflegten Collections. 2.10 ist die erste Ansible Version, die Red Hat nicht mehr direkt als RPM anbietet.
Das ansible-base Paket steht ebenfalls nicht als RPM zur Verfügung. Wie bereits in der Vergangenheit teilweise geschehen, liegt dies nun in der alleinigen Verantworung der Maintainer der betreffenden Distributionen. Wer Wert auf ausschließlich von RedHat gepflegte Software legt, installiert und verwendet am besten nur pures ansible-base/ansible-core.
Da neuere Versionen nicht mehr als RPM vorhanden sind, wird man um eine Deinstallation alter Ansible Versionen nicht umhinkommen.
Die Version 3.x ist als Übergangsversion gedacht. Ab Version 4.0.0 wird ansible-base in ansible-core umbenannt. Die Ansible Hauptversionen (z.B. 4.0.0, 5.0.0) folgen den offiziellen Planungen, gemäß kurz nach der Veröffentlichungen der dazugehörigen ansible-core Hauptversionen (z.B. 2.11, 2.12). Ansible 4.0.0 erscheint im Mai 2021, danach soll alle 6 Monate die nächste Hauptversion folgen. Updates der Minor-Versionen sollen alle 3 Wochen kurz nach der dazugehörigen ansible-core Minor-Version veröffentlicht werden. Die Minor-Versionen sind abwärtskompatibel, bei Major Updates können Nacharbeiten erforderlich werden.
Noch gibt es dabei einige offene Baustellen. Für die Migration von älteren Playbooks nach Ansible 3.0.0 ist unter Umständen Handarbeit nötig.
Uns gefällt prinzipiell die verstärkte Einbindung der Ansible Community und die verbesserte Wartung, die die neuen Änderungen mit sich bringen.
Andereseits entstehen aber auch ein paar Fragezeichen, beispielweise mit der inkosistenten Versionierung von Ansible Metaversion auf der einen und ansible-base bzw core auf der anderen Seite.
Auch ungeklärt ist noch die Frage ob Ansible mit seinem starken Fokus auf Collections auch langfristig das Verwenden von „reinen“ externen Rollen unterstützen wird, oder ob alles künftig eine Collection sein muss.
Langfristig wird sich zudem zeigen, ob die Community die Änderungen mittragen wird oder auf lieber auf den „klassischen“ Versionen stehen bleibt.
ATIX-Crew
Neueste Artikel von ATIX-Crew (alle ansehen)
- Foreman Birthday Party 2024 - 1. August 2024
- CrewDay 2024 - 6. Juni 2024
- Die XZ-Sicherheitsschwachstelle: Eine Übersicht - 9. April 2024