09. 07. 2019

Server-Konfigurationen auf Knopfdruck

Wer als Administrator für die Konfiguration und Administration von Serversystemen verantwortlich ist, braucht Unterstützung durch gute Werkzeuge. Wir möchten Ihnen ein Werkzeug vorstellen, welches wir bei MCS einsetzen und empfehlen können: Ansible.

Das Prinzip von Ansible

Ansible wurde aus der Praxis heraus entwickelt und ist ein Werkzeug zur Konfiguration und Installation von Serversystemen.

Die Idee hierzu kam von Mastermind und Multitalent Michael DeHaan in 2012 („Previously created Ansible and some other things you might have used once.“). Die Firma AnsibleWorks entstand bald danach und führt die Entwicklung bis heute fort.

Was macht nun aber Ansible? Man könnte sagen, Ansible abstrahiert die Konfiguration von Serversystemen und fungiert als eine generische Zwischenschicht. Ansible ist in der Lage, aus abstrakten Beschreibungen instanziierte Konfigurationen zu generieren.

Diese Abstraktion gilt nur für die Installation, nicht für die Laufzeit, denn auf den Zielsystemen wird immer eine „klassische“ Konfiguration erzeugt. Das Ergebnis ist also gleich, egal ob ich den Server manuell konfiguriere oder mithilfe von Ansible.

Von einem Ansible Server (Knoten, Node) aus können sogenannte Playbooks ausgeführt werden, die auf den Zielsystemen remote die Konfigurationen erzeugen.

Playbooks sind Beschreibungen von Konfigurationen, die im YAML-Format vorliegen. YAML steht für „yet another markup language“ und ist an XML angelehnt. Mit etwas Übung sind diese Playbooks gut lesbar und gut zu warten.

Die zu verwaltenden Zielsysteme sind agentenfrei. Das heißt, es ist nicht erforderlich, eine Ansible Client Software dort zu installieren, um die Playbooks nutzen zu können. Lediglich der Zugriff auf die Zielsysteme via SSH vom Ansible Server aus ist erforderlich. Und Python muss vorhanden sein, sonst nichts. Das vereinfacht die Sache ungemein.

Erfreulich ist auch, dass Ansible unter GNU General Public License steht, also freie Software ist.

Warum ist das gut?

Durch die Abstraktion in Playbook ist es möglich, identische Konfigurationen auf beliebig vielen Zielsystemen in immer derselben Qualität zu erzeugen. Es gibt keine „Vertipper“, keine Flüchtigkeitsfehler, die Reproduzierbarkeit ist gegeben.

Konfigurationsänderungen können an einer zentralen Stelle vorgenommen und blitzschnell auf alle Zielsysteme übertragen werden.

Es ist hierbei nahezu egal, wie viele Serversysteme bedient werden müssen. Mit wenigen Befehlen lässt sich eine beliebige Anzahl von Servern quasi gleichzeitig installieren.

Die Wartungsfenster und Downtimes der Zielsysteme können minimiert werden.

Konfigurationen können im Lab erstellt und geprüft werden. Erst wenn sie fehlerfrei laufen, werden sie verteilt. Und zwar genau so, wie sie erstellt wurden.

Auch spezielle Softwareanforderungen und -installationen können automatisiert verteilt werden.

Neue Hardware kann schnell installiert werden. Fehlerhafte Systeme können rasch durch „frisch“ aufgesetzte Systeme ersetzt oder ergänzt werden.

Ansible ist für alle relevanten Betriebssysteme nutzbar.

Kein Werkzeug für Jedermann

Ansible ist ein Werkzeug für Admins und kein Werkzeug für Laien, die ohne Fachkenntnisse oder mithilfe eines „Klick-Mich-Tools“ Serversysteme aufbauen möchten. Nein, wer nicht weiß, was zu tut ist, wird mit Ansible scheitern.

Die Herausforderung bei Ansible ist das Erlernen der Fähigkeit, Zielkonfigurationen in Playbooks zu übersetzen. Das setzt etwas Einarbeitungszeit und Mühe voraus, lohnt sich aber sehr bald. Und man kann sich ja auch hierbei helfen lassen.

Unterstützung durch MCS

Bisher wurden Softwareunterstützungen wie Ansible nur in großen Umgebungen eingesetzt, weil diese Aufgaben spezielles Personal (sog. DevOps Engineers) erfordert. Dies lohnt sich für kleinere bis mittelständische Unternehmen nicht, weil dieses Personal zum einen recht kostspielig ist und eine vollständige Auslastung dieses Personals nicht zu erreichen ist. Aber auch für diese Zielgruppe hätte Ansible hohen Nutzen.

Da wir Ansible selbst produktiv einsetzen, haben wir mittlerweile gute Erfahrungen mit dem System und dem Erstellen von Playbooks gemacht. Diese Erfahrungen geben wir gerne an unsere Kunden weiter.

Wenn Sie also eine Serverfarm aufsetzen oder neu strukturieren wollen und hierbei auf Ansible setzen möchten, so könnte MCS Sie bei diesem Prozess unterstützen.

Nutzen Sie die Erfahrung unserer Systemadministratoren in einem Migrationsprojekt oder auch zur Betriebsunterstützung nach erfolgter Umstellung.

Kontakt

Wir beraten Sie gern, um eine Analyse Ihrer Infrastruktur durchzuführen und Ihnen Optimierungen und Einsparungspotenzial aufzuzeigen.

Unser Kollege Markus Steinhauer ist als DevOps einer unserer technischen Ansible-Experten im Haus und freut sich auf Ihre Anfrage. Wir beraten Sie gern! Melden Sie sich einfach hier. Oder schreiben Sie uns eine E-Mail an markus.steinhauer@mcs.de.