© Elvira Koneva/Shutterstock.com
Multi-Tier Deployment mit Ansible

Mehrstufig mit Modulen


Ansible von Red Hat bietet automatisierte Konfiguration sowie Orchestrierung von Maschinenlandschaften. Das leichtgewichtige und flexible Werkzeug wird immer häufiger in DevOps-Toolchains und beim Cloud-Computing eingesetzt. Dieser Artikel zeigt, wie man damit ein komplexes Multi-Tier-Set-up auf dem Server bekommt.

Ansible [1] bietet als Maschinenkonfigurations- und provisionierungsframework automatisiertes und reproduzierbares Management von IT-Landschaften. Das relativ junge aber bereits recht ausgereifte Werkzeug (aktuell ist Version 2.6) gehört der Anwendungsklasse Infrastructure as Code (IaC) an und steht in Konkurrenz zu teilweise schon seit längerem etablierten Lösungen wie Puppet, Chef und Salt/SaltStack.

Die Software wurde 2015 von Red Hat aufgekauft und wird zurzeit als Bestandteil des von diesem Anbieter angebotenen, umfassenden Open-Source-Softwarestacks für die Anwendungsbereitstellung im Markt positioniert. Die auch außerhalb des kommerziellen Angebots verfügbaren CLI-basierten Werkzeuge werden dabei als Ansible Engine bezeichnet. Der Provisioner bietet ein klar strukturiertes und übersichtliches Komponentenmodell, das aus Maschineninventar, Modulen, Playbooks und Rollen besteht, verfolgt bewusst einen leichtgewichtigen Ansatz und kann bereits nach relativ kurzer Einarbeitungszeit erfolgreich eingesetzt werden.

Ansible dient hauptsächlich der Steuerung von Linux, BSD- sowie Unix-Maschinen und kommt ohne Agenten auf den Zielsystemen aus. Es benötigt keinen zentralen Server und muss nur auf dem Kontrollknoten beziehungsweise dem Arbeitsrechner des Anwenders installiert und aktuell gehalten werden. Für Operationen auf einer Maschine wird ein SSH-Zugang und ein dort installierter Python-Interpreter (per Default 2.7) vorausgesetzt, Ansible setzt also auf einer höheren Ebene an als „Bare Metal“-Systeme ohne installiertes Betriebssystem, die dies nicht zur Verfügung stellen können.

Ansible-Projekte dienen dazu, eine oder mehrere Maschinen von einem bestimmten Zustand (meistens wird von der Basisinstallation eines Betriebssystems ausgegangen) in einen anderen bestimmten Zustand zu bringen (etwa als Web- oder Datenbankserver zu fungieren). Die Software verfolgt dabei einen imperativen Ansatz (wie wird etwas erreicht). Die Anhänger dieser Methode verweisen auf deren Vorteile, wozu etwa einfacheres Debugging und die volle Kontrolle gehören. Vom Anwender wird allerdings verlangt, den Ausgangszustand einer Maschine wie ein Administrator im Detail zu ken...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang