Automatisierung von Tasks und Aufgaben mit Ansible

DATEV eG
DATEV TechBlog
Published in
5 min readNov 18, 2020

Von: Christian Lorenz

Wäre es nicht schön, wenn ein Tool dabei unterstützen würde, Automatisierungen für die Durchführung von Tasks bzw. Aufgaben zu erstellen, die dann auch miteinander kommunizieren können und mit Kollegen geteilt werden können? So könnte jeder vom Automatisierungserfolg des anderen profitieren.

Automatisierung in Form von programmierbaren Kaffeemaschinen oder Staubsauger-Robotern haben viele von uns gerne zu Hause. Und auf der Arbeit?
Dort haben wir noch zu viel manuelle Arbeiten!
Einige automatisieren ihre Arbeit schon für sich, in kleinen Skripten oder Programmen oder vielleicht in einem Makro.

Warum? Na, damit man schneller fertig ist, und weniger Fehler macht. Denn andere, zusätzliche Aufgaben haben wir schließlich alle genug.
Genau! Dann lasst uns das doch alle, von Anfang bis Ende, so machen.
Wir leben in einer derart schnellen Welt, dass man nicht mehr alles einzeln manuell umsetzen sollte, wenn es doch bessere Möglichkeiten gibt.

Das HomeOffice zeigt auch, dass man seine Anforderungen/Änderungen oftmals „jetzt“ benötigt. Oder ganz, ganz dringend zu einer Zeit wo der der Kollege nicht mehr online ist, weil er lieber früh arbeitet, und ich spät. Dies kann man mit Automatisierungen, die eine Schnittstelle für den Anforderer haben, einfach gestalten.
Einmal umgesetzt, merkt man schnell, dass man sich nicht selbst weg-automatisiert, sondern noch wichtiger wird.

Und wenn diese SelfServices hinter einander geschaltet werden, entsteht eine Fertigungsstraße für Software.
Oder wir lassen den Automaten nachts die erste Entstörung bei Alarmen erledigen. Meistens muss ja „nur“ mal neu gestartet werden. Automatisiert muss niemand mehr geweckt werden, der dann vielleicht müde das Falsche restartet.

Viele tolle Ideen, aber ist es nicht zu aufwändig und teuer?

Mit Ansible wurde schon die Erstellung von Kafka-Systemen automatisiert. Und die Kafka Admins sind begeistert! Sie müssen nicht mehr tagelang Systeme installieren und konfigurieren. Sie starten einfach einen Automatisierungsjob im Ansible/AWX. Und ein bis zwei Stunden später ist die neue Umgebung „Up und Running“ und kann vom Kunden genutzt werden.
Der First Level kann durch Ansible/AWX-Jobs schneller und einfacher sowie zahlreichere Snapshots von VMWare Systemen erstellen. Dies verkürzt die Wartungsfenster und erfreut die Ungeduldigen unter uns. ;-)
Die Cloudwelt kommt gar nicht ohne Automaten aus. Hier werden täglich Dutzende Automatisierungen genutzt und man kann somit schneller und spontaner agieren.

Nachgefragt…

Wir haben bei Christian Lorenz als Treiber des Themas Automatisierung mit dem Open-Source Automatisierungs-Werkzeug Ansible und Fabian Frauenstein als Nutzer des Tools im Team Rechenzentrum-Betrieb nachgefragt, wie Ansible bei der Automatisierung von Aufgaben in der Praxis unterstützen kann.

Christian, Automatisierung gibt es nicht erst seit Ansible intern bei DATEV. Wie wurde das bisher gehandhabt?

Christian: Automatisiert wird in der DATEV von Anfang an. Wer einen Job mehrmals hintereinander machen musste, überlegt sich irgendwann, ob man das nicht auch einfacher machen könnte. So sind in der Vergangenheit einige Lösungen in Form von Skripten entstanden, die bis heute verwendet werden. Das wird überall gemacht. Jeder automatisiert erst einmal für sich und jeder, wie er möchte: Jeder benutzt das, was er hat und kann, in der Sprache, die er beherrscht oder mit der Technik, die er zur Verfügung hat.

Wie kam es dazu, das Thema Automatisierung in der DATEV voranzutreiben?

Christian: Je mehr Anfragen oder Aufgaben man hat, desto eher steigt zwangsläufig auch die Fehleranfälligkeit bei manuellen Tätigkeiten. Man kann bei gleichbleibendem Personaleinsatz auch auf die Menge der Anfragen irgendwann nicht mehr so schnell reagieren. Die Kunden haben sich verändert und die Welt ist schnelllebiger geworden. Die Cloudwelt hat gezeigt, dass man viel automatisieren kann. Das Ziel unseres Teams war es daher, eine Plattform bereitzustellen, die nicht nur in der Lage ist, eine zentrale API anzubieten und verschiedene APIs anzusprechen, sondern auch den Gesamtprozess zu verbessern.

Deshalb war es unser Ziel, Automatisierung als Self-Service anzubieten.

Wo bislang jedes Team seine eigenen Automationen erstellt und genutzt hat, kann es ihre Erkenntnisse oder Ergebnisse heute ohne großen Aufwand anderen Teams über eine standardisierte Schnittstelle bereitstellen. Mit AWX, einer Open Source Erweiterung für Ansible, können Automationen vom Business Process Manager (BPM), dem Service Manager und anderen Clients angesprochen werden.

Wo ist Ansible heute schon im Einsatz und wie wird die Plattform zum Beispiel eingesetzt?

Fabian: Heute arbeiten wir an configuration as code: Ich beschreibe anfangs in einem strukturieren Text, was ich haben will und der Automat arbeitet das für mich ab. Zukünftig ist auch infrastructure as code denkbar: Ich möchte eine Anwendung schreiben und währenddessen meine Infrastruktur schon definieren. Im Hintergrund wird mir per Automation die Laufzeitumgebung für meine Anwendung eingerichtet. Und wenn ich während der Entwicklung merke, dass ich eine Änderung an der Infrastruktur benötige, ändere ich die Beschreibung und die Automation passt alles für mich an.

Christian: In der DATEV sind wir schon so weit, dass wir Teile davon schon so ausliefern können. Mit Ansible und AWX können sich die Anwender nun untereinander vernetzen, ihre Automationen miteinander teilen und sogar extern bereitgestellte Automatisierungs-Module der Hersteller einbinden.

Zum Beispiel kann sich ein Process Owner für Software heute ganz einfach aus einem Werkzeugkasten bedienen, unserer Self Service macht ihn autark: Er kann sagen „ich brauche einen Server, der exakt auf diese Weise konfiguriert sein muss oder ich möchte einen eigenen Prototyp bauen“. Für diese Tätigkeit musste er früher auf verschiedene Zulieferer zugehen und warten bis die einzelnen Punkte umgesetzt wurden. Heute erledigt das die erstellte Ansible-Automation im Hintergrund.

Fabian: Ein anderes Beispiel ist die Snapshoterstellung, mit der für Systemadministratoren ein Abbild ihres virtuellen Serversystems als Absicherung bei Änderungen erstellt wird. Bisher hatte man eine lange Liste mit ausschließlich manuellen Tätigkeiten, die man für jeden einzelnen Server extra durchführen musste. Heute gibt’s eine Ansible Automation dazu, jetzt funktioniert das per Knopfdruck.

Welche Szenarien sind noch denkbar? Was könnten wir bei DATEV alles automatisieren?

Christian: Ich habe noch nichts gefunden, was man damit nicht automatisieren kann. Man könnte damit sogar eine moderne Kaffeemaschine ansprechen, wenn sie über eine entsprechende Schnittstelle verfügt. Prinzipiell ist alles denkbar; man muss sich Gedanken machen, welcher Use Case mir am meisten bringt und wie klein die Automatisierung sein kann.

Beispielsweise könnte der BPM in einem Prozess eine oder mehrere Ansible Tasks starten.

Man könnte aus einer Alarmierungssoftware heraus direkt eine Automation anstoßen: Wird ein Alarm ausgelöst, startet eine Automation, und die Systeme heilen sich von selbst — der First Level bekommt dann nur noch eine Info, dass etwas passiert ist und dass es gelöst wurde. Der Mensch muss dann nur noch im Notfall oder in besonderen Fehlerkonstellationen eingreifen. Der Ausfall ist damit zwar immer noch da, aber die Reaktions- und damit die Ausfallzeit beim Kunden minimieren sich.

Es sind so viele Szenarien denkbar. Vielen ist gar nicht klar, was sie für Möglichkeiten haben und was sie sich damit ersparen können.

Fabian und Christian, wir danken euch für das Gespräch!​​​​

Photo by Alex Knight on Unsplash

--

--

DATEV eG
DATEV TechBlog

DATEV eG steht für qualitativ hochwertige Softwarelösungen und IT-Dienstleistungen für Steuerberater, Wirtschaftsprüfer, Rechtsanwälte und Unternehmen.