Workshop: Automatisierung mit Ansible

IT nach Plan

DevOps, die Kombination aus Softwareentwicklung und IT-Betrieb, setzt sich zum Ziel, Softwareentwickler und Betriebspersonal eng zusammenarbeiten und voneinander lernen zu lassen. Ein zentraler Aspekt dabei ist das automatische Provisionieren von Infrastruktur sowie allgemein Software- und Konfigurationsverteilung. Wohlbekannt hierfür sind seit einiger Zeit bereits die Produkte Chef und Puppet. Ein relativ neuer Mitbewerber auf diesem Gebiet ist Ansible, das ähnliche Funktionen bietet, dabei aber tendenziell weniger auf Softwareentwickler und mehr auf erfahrene Administratoren zielt. Dieser Workshop zeigt die Einsatzmöglichkeiten des Automatisierungswerkzeugs.
In der April-Ausgabe hat sich IT-Administrator die Netzwerksicherheit zum Schwerpunkt gesetzt. Wir zeigen, wie Sie mit Honeypots auf Hacker-Jagd im Netzwerk ... (mehr)

Der imperative Ansatz, den Ansible zur Formulierung der zu automatisierenden Aufgaben verwendet, ist aus unserer Sicht eingängiger und hält auch in komplexen Setups weniger Überraschungen bereit als die eher deklarative Herangehensweise von beispielsweise Puppet. Grob gesagt stellt Ansible das "Wie" in den Vordergrund, während Puppet darauf setzt, mit dem gewünschten Zielzustand eines Systems das "Was" zu beschreiben und darauf zu bauen, dass dieser Zustand von den Agenten – ausgehend vom aktuellen Systemzustand – hergestellt werden kann. Treten unerwartete Effekte und Probleme auf, ist durch den höheren Abstraktionsgrad das Debugging mitunter aufwändig und schwer nachvollziehbar.

Als Mindestanforderung setzt Ansible lediglich ein installiertes Betriebssystem (hier Ubuntu-Linux) voraus, das einen SSH-Zugang für einen administrativen Nutzer bereitstellt. Weil bereits ein Betriebssystem und SSH-Zugang erforderlich sind, ist Ansible explizit nicht als Baremetal Provisioning-Tool geeignet. In unserem Fall starten alle neu aufgesetzten Maschinen mit einem schlanken Basis-Image, das diese Voraussetzungen erfüllt. Sobald ein Login per SSH möglich ist, kann Ansible übernehmen. Zur Laufzeit werden dann alle erforderlichen Komponenten via SSH auf das Zielsystem übertragen, dort ausgeführt und anschließend wieder entfernt – keine Sorge, das ist keineswegs so langsam, wie es sich im ersten Moment anhört. Während dedizierte Agenten die Komplexität des Gesamtsystems erhöhen und nach der Installation gewartet und aktuell gehalten werden müssen, entfällt dieser Aufwand bei Ansible. Updates für Ansible beschränken sich auf die lokale Installation.

Flexible Inventarisierung

Um Maschinen provisionieren zu können, muss Ansible wissen, wie sie zu erreichen sind. Diese Informationen sind in sogenannten Inventorys gespeichert. Ein Inventory ist eine Textdatei im

...

Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.

comments powered by Disqus

Artikel der Woche

Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2018