Adacor - Cloud

Konfigurationsmanagement mit Ansible

22. September 2017 von Andreas Bachmann

Wie Automatisierung in die Ssystemadministration Einzug hältOpen Source Software zum Konfigurationsmanagement

Die etablierten Lösungen für Konfigurationsmanagement heißen CFEngine, Puppet oder Chef, die Newcomer Saltstack und Ansible. Sogenannte Konfigurationsmanagementsysteme sind spätestens seit dem Erfolg und den Errungenschaften von DevOps in den Unternehmen angekommen und ermöglichen so zum Beispiel die Automatisierung von Prozessen bei der Administration von Servern.

Entwickler und Systemadministratoren werden zukünftig stärker zusammenarbeiten. Ansible leistet hierzu einen Beitrag, indem es ermöglicht, die Systemadministration wie Entwicklungscode zu behandeln und die im Rahmen eines Projektes benötigte Serverkonfiguration im Entwicklerteam zu managen. Einfachheit und Lesbarkeit der Konfiguration sind dabei besondere Merkmale dieser Open-Source-Lösung.

Konfigurationsmanagement – Wozu braucht man das?

Ansible ist eine Konfigurationsmanagementsoftware. Aber was leistet eine derartige Software genau? Fakt ist, dass alle Konfigurationsmanagementsysteme nach demselben Prinzip arbeiten: Es gibt eine Sprachsyntax, mit Hilfe derer man den Zustand eines Servers definiert. Bei Ansible kommt die vereinfachte Auszeichnungssprache YAML zum Einsatz. Auf dieser Grundlage kann die Systemadministration wie Entwicklercode behandelt werden, denn die entsprechenden Konfigurationsdateien selbst können durch klassische Versionsverwaltungen wie GIT oder SVN gepflegt werden, die sich schon in der Softwareentwicklung bewährt haben. Die Konfigurationsmanagementsoftware kümmert sich im nächsten Schritt darum, dass der im Vorfeld definierte Zustand auf dem Server ausgeführt wird. Das hat für den Entwickler beziehungsweise Administrator den Vorteil, dass er verschiedene Serverzustände definieren kann, zwischen denen er mithilfe von Ansible hin- und herswitchen kann. Da alles im Vorfeld sauber definiert wurde, entfällt die zeitaufwendige und möglicherweise fehlerhafte Konfiguration von Hand. Mehreren Servern kann nun einfach und unkompliziert der identische Zustand zugewiesen werden. Diese Form der Standardisierung und Automatisierung der Abläufe bedeutet eine enorme Arbeitserleichterung auf Seiten der Administration.

Adacor Private Cloud für Unternehmen

Adacor Private Cloud so sicher wie im eigenen Rechenzentrum.

Jetzt über Business Cloud informieren!

Moderne Cloud Lösung für eine sichere IT.
Betrieben in Deutschland.

Der Einsatz von Ansible lohnt sich im Prinzip schon ab einem Server und für alle, die sich mit Serverkonfiguration befassen. Schließlich macht sich die Software von Anfang an nützlich, indem sie für die Serverkonfiguration unter anderem als eine Art Backup fungiert. Mithilfe von Ansible kann man die ursprüngliche Konfiguration binnen von Minuten wiederherstellen, sollte sie einmal zerstört worden sein. Aber Ansible eignet sich auch für die Konfiguration komplexer Serverlandschaften inklusive verschiedener Applikationen wie es zum Beispiel bei einem Webshop der Fall ist. Man spricht in diesem Fall von Orchestrierung.

Das ist Konfigurationsmanagement noch einmal einen Schritt weitergedacht. Bei einem Webshop kommen beispielsweise ein Loadbalancer, ein oder mehrere Web- und Datenbankserver sowie verschiedene Applikationen zum Einsatz. Im Rahmen der Orchestrierung definiert der Administrator mithilfe von Ansible das Zusammenspiel aller eingesetzten Komponenten und die reibungslose Kommunikation zwischen den einzelnen Bausteinen.

Systemvoraussetzungen und Kernfunktionalitäten

Automatisierung mit AnsibleDer Start mit Ansible ist denkbar unkompliziert, denn die Software benötigt quasi keine Systemvoraussetzungen. Benötigt wird lediglich ein SSH-Zugriff, damit der Administrator die Clients verwalten kann. Darüber hinaus wird noch eine Python-Installation inklusive einer spezifischen Bibliothek benötigt. Auf dem Zielsystem muss – im Gegensatz zu den meisten anderen Konfigurationsmanagementsystemen – keine Client-Software installiert und konfiguriert werden. Das erleichtert den Einstieg in das Konfigurationsmanagement erheblich.

In Ansible selbst werden im Wesentlichen zwei Funktionen unterschieden, sogenannte Rollen und Playbooks. Einer Rolle werden spezielle aufeinander folgende Aufgaben oder Tasks zugewiesen. Es gibt zum Beispiel eine Rolle, die legt die User an. Eine andere konfiguriert den Web- oder Datenbankserver. Rollen sind im Idealfall eng gefasst. Denn je enger sie gefasst sind, desto häufiger kann man sie wiederverwenden und sich für jeden Server eine passende Konfiguration aus den einzelnen Rollen zusammensetzen.

Der Zustand eines Systems wird – stark vereinfacht ausgedrückt – mithilfe von Playbooks beschrieben. Das sind Dateien, in denen mehrere Rollen zusammengefasst werden. Dabei sind Playbooks nicht auf einzelne Systeme beschränkt, sondern können ganze Umgebungen (Webserver, Datenbankserver, Loadbalancer) zeitgleich konfigurieren.

Alle Konfigurationsmanagementsysteme – so auch Ansible – arbeiten idempotent. Das heißt, dass der Programmcode, egal wie häufig er hintereinander ausgeführt wird, das gleiche Ergebnis liefert – eine strukturierte und nachvollziehbare Version der Serverkonfiguration.

Viele Vorteile, wenig Nachteile

Aus unserer Sicht überwiegen in Bezug auf Ansible die Vorteile:

  • Einfache Sprachsyntax (YAML); der Einarbeitungsaufwand ist vergleichsweise gering. Dies geht einher mit einer niedrigen Lernkurve und minimalem Schulungsaufwand, denn die Grundlagen kann man sich schnell aneignen.
  • Eine sichere und einfache Verbindung über SSH.
  • Es wird keine Client-Software benötigt. Das bedeutet weniger Aufwand für und geringere Kosten für die Kunden. Außerdem ist man hierdurch unabhängig von einem Masterserver.
  • Hohe Flexibilität und Wiederverwendbarkeit durch die Verwendung von Rollen.
  • Ansible ist eine Open-Source-Lösung, das bedeutet, die Modifikation und das bedarfsorientierte Customizing ist problemlos möglich.

Klassische Nachteile sind durch den Einsatz des Systems nicht zu befürchten. Im Gegenteil, sobald man ein Konfigurationsmanagementsystem im Einsatz hat, ist man in jedem Fall besser aufgestellt als vorher, denn im Ernstfall kann man das System binnen von Minuten neu aufsetzen.
Lediglich wer Wert auf das Live-Feedback legt, ist mit Ansible nicht gut beraten und sollte gegebenenfalls auf Puppet oder Chef umsteigen, denn über einen Masterserver mit entsprechenden Clients verfügt Ansible nicht. Stattdessen hat jeder Systemadministrator Ansible auf seinem Rechner installiert und kann arbeiten. Durch die Versionsverwaltung beispielsweise mit GIT ist es dabei problemlos möglich, die Konfigurationen im verteilten Team zu koordinieren.

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

Ansible im Einsatz bei ADACOR

ADACOR hat mehrere Hundert Server im Einsatz. Da die verschiedenen Hosting-Projekte in der Regel kundengetrieben sind, sind die jeweiligen Konfigurationen der Systeme sehr unterschiedlich und individuell auf die Bedürfnisse der Kunden angepasst. Was, abhängig von den Anforderungen, mit erheblichem Zeit- und Pflegeaufwand verbunden ist.

Mit Ansible ist es problemlos möglich, eine standardisierte und „bewährte“ Standardkonfiguration auf den Systemen zu hinterlegen und diese an die projektspezifischen Erfordernisse anzupassen. Das entlastet den Pflegeaufwand im Betrieb und vereinfacht das Changemanagement sowie die dazugehörige Dokumentation.

Auch die Konzeption der neuen As-a-Service-­Produkte von ADACOR stützt sich auf professionelles Konfigurationsmanagement. Den neuen MySQL-Service beispielsweise können Kunden völlig automatisiert und auf der Basis von hinterlegten Standardkonfigurationen über ein Webportal selbst buchen und einrichten. Manuell würde die Einrichtung eines solchen Services mindestens ein bis zwei Stunden Zeit in Anspruch nehmen. Nun kann der Kunde sich das gewünschte Produkt binnen ein bis zwei Minuten über das Portal selbst zusammenstellen. Der Server wird völlig automatisiert über die Cloud bereitgestellt, während die Konfiguration auf der Basis von Code und Ansible-Standardkonfigurationen erfolgt.

Fazit

Ansible, der Youngster unter den Konfigurationsmanagementsystemen, zeichnet sich durch Einfachheit, Lesbarkeit und eine schlanke Konzeption aus. Der Einarbeitungsaufwand ist vergleichsweise gering. Das macht Ansible prinzipiell für jeden interessant, der sich mit Serverkonfigurationen befasst. Die mit der Automatisierung und Standardisierung einhergehende Effizienzsteigerung bei der Serverkonfiguration ist der Hauptgrund, der für den Einsatz von Ansible spricht. Das Tool entlastet Systemadministratoren erheblich, nicht zuletzt dadurch, dass sich etwaige Fehler oder Sicherheitslücken in der Konfiguration mithilfe des Tools schnell und automatisiert beheben lassen.

Verwandte Artikel