Software installieren, passend konfigurieren, Updates einspielen oder Log-Daten auswerten: Wer hunderte oder tausende Server, virtuelle Maschinen und Container betreibt, kann das alles nicht manuell mit Shell und Editor erledigen. Hier kommen Konfigurationsmanagement und IT-Automatisierung ins Spiel. Das Open-Source-Tool Ansible hat sich hier rasant verbreitet, und lässt sich dank Tower, Ansible Automation Plattform und AWX auch für Nicht-Admins bereitstellen.
Wer manuelle Prozesse durch automatisierte Abläufe ersetzt, möchte nicht nur die Effizienz steigern, sondern auch das Risiko von Flüchtigkeitsfehlern verringern. Das manuelle Einspielen von Updates und die korrekte Konfiguration von Server-Anwendungen sind hier besonders prägnante Beispiele: Lästig für jeden Admin, und ein kleiner Tippfehler kann schlimme Folgen haben. Hat man eine Aufgabe automatisiert, dann läuft der Vorgang immer identisch, es können sich keine Missgeschicke einschleichen und vergessen kann man die Aufgabe auch nicht mehr.
Admins Liebling
Weil der Nutzen in vielen Szenarien so offensichtlich ist, gibt es seit Urzeiten ein umfangreiches Angebot an Automatisierungs- und Konfigurationsmanagement-Lösungen, sowohl im proprietären Lager als auch von Open-Source-Projekten. Die Auswahl des besten Tools hängt von den individuellen Anforderungen, Präferenzen und spezifischen Projektzielen ab. Ansible ist ein vergleichsweise junges, gerade bei Admins recht beliebtes und leistungsfähiges Automatisierungstool, das sich für viele Anwendungsfälle eignet und von der DevOps-Community weitverbreitet genutzt wird.
Was Ansible im Vergleich zu anderen Automatisierungslösungen auszeichnet, ist der einfache Einstieg. Die Konfig-Files werden in YAML oder JSON geschrieben, was viele Administratoren gut kennen. Ansible arbeitet zudem Agenten-frei, man muss also keine Zusatzsoftware auf den zu verwaltenden Geräten installieren. Ein SSH-Zugang (mit hinterlegtem SSH-Key) reicht völlig aus, und der ist in den meisten Umgebungen sowieso vorhanden. Da Ansible jedoch extrem viele Möglichkeiten bietet, trifft hier das Sprichwort „easy to learn, hard to master“ zu.
Keine Lösung für jedes Problem
Allerdings hat Ansible durch seine Architektur auch Grenzen. Ein Beispiel aus der Praxis: Der Admin führt ein Systemupgrade durch. Bei größeren Versionssprüngen ändert sich gerne der Aufbau von Konfigurationsdateien, was schnell zu einem unerwarteten Fehler führen kann. Im vorliegenden Beispiel hat das System nach dem Update keine gültige Netzwerkkonfiguration mehr. Hier kommt man mit Ansible nicht mehr weiter, sondern muss sich ganz traditionell mit Tastatur und Bildschirm vor das System setzen oder – soweit vorhanden – die IPMI-Schnittstelle verwenden. An der Stelle sind agentenbasierten Tools wie Puppet im Vorteil, da der Agent auch ohne Netzwerkverbindung die Konfiguration korrigiert.
Ansible kann theoretisch mit sehr großen Infrastrukturen arbeiten. Die Skalierbarkeit hängt allerdings von verschiedenen Faktoren ab, darunter die Effizienz der Netzwerkkommunikation, die Leistung des Ansible-Controllers und die Konfiguration. Es kann notwendig sein, zusätzliche Ressourcen oder Load-Balancing-Techniken einzusetzen, um die Skalierbarkeit sicherzustellen.
Tower, AWX und die Ansible Automation Plattform
Um die Funktionalität der Open-Source-Version von Ansible zu erweitern, hatte der gleichnamige Hersteller vor Jahren das proprietäre Projekt Tower entwickelt. Es bietet eine webbasierte Benutzeroberfläche, um Ansible-Playbooks zu verwalten, zu planen und auszuführen. Dabei enthält Tower auch Funktionen zur Zugriffskontrolle, Protokollierung und Berichterstattung.
Nach der Übernahme von Ansible Inc. durch Red Hat begannen die Entwickler damit, Tower unter eine Open-Source-Lizenz zu stellen – in einem Fork namens AWX. Der gilt als Community-Projekt, mit Sponsoring, aber ohne Support von Red Hat. In den Fedora-Foren gibt es jedoch umfangreiche Hilfe aus der Community.
Die kommerzielle Variante von Ansible Tower / AWX heißt inzwischen Red Hat Ansible Automation Plattform RHAAP. Für diese liefert Red Hat umfassenden Support und bietet eine Integration mit anderen Red-Hat-Diensten. Recht praktisch ist zum Beispiel die Integration von Insights. Dieses Client-Monitoring-Tool zeigt, ob es neue Updates gibt, ob das Gerät von bekannten Sicherheitslücken betroffen ist, und es sammelt die Logs. Durch die Integration von Insights kann die Automation Plattform unter anderem fällige Updates einspielt, über Sicherheitslücken informieren und diese automatisch mit den Empfehlungen seitens Red Hat beheben.
Selbst ist der User
In der Praxis haben Anwender oft recht einfache und sich wiederholende Aufträge an Admins. Beispielsweise brauchen Entwickler bestimmte Log-Auswertungen oder Product Owner wollen Updates auf ihren Maschinen einspielen. Mit der RHAAP können Admins diese Aufgaben in die Hände der Anwender legen. Sie formulieren dazu einmal den Ablauf im Playbook und schalten dem Nutzer dann einen Webzugang mit einem „Button“ frei. Der Anwender kann diese Aufgabe dann selbst erledigen, ohne damit weitere Admin-Rechte zu erhalten.
Dieses Delegieren einfacher Aufgaben entlastet den Administrator und macht die Anwender zufriedener, da sie nicht mehr auf die Verfügbarkeit des Administrators warten müssen.
Praktische Lösung
Für große IT-Umgebungen mit vielen Server-Instanzen ist Ansible eine moderne und pragmatische Konfigurationsmanagement-Lösung und IT-Automatisierung. Dank AWX oder RHAAP lassen sich neben klassischen Admin-Aufgaben auch Self-Service-Funktionen für Normalanwender umsetzen.