Ansible – DevOps-Automatisierung für Einsteiger

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Infrastruktur-Automatisierung mit Ansible

Die Automatisierung der Infrastruktur ist ein unverzichtbarer Bestandteil des modernen DevOps-Zyklus. Die manuelle Konfiguration von Servern, die Installation von Paketen, das Deployment von Anwendungen und die Skalierung von Ressourcen sind äußerst zeitaufwendig. Dieser Ansatz ist zudem anfällig für menschliche Fehler und verringert die Reproduzierbarkeit von Prozessen. Zur Lösung dieser Probleme kommt Ansible zum Einsatz – ein leistungsstarkes Automatisierungstool.

Ansible ist ein Open-Source-Tool zur Automatisierung von Systemadministrationsaufgaben. Es wurde in Python entwickelt und benötigt keine Agenten auf den verwalteten Hosts. Zur Beschreibung der Konfigurationen wird das YAML-Format verwendet, und die Verbindung zu den Servern erfolgt über das SSH-Protokoll. Dank seiner einfachen und lesbaren Syntax hat sich Ansible bei großen Unternehmen wie NASA, Twitter und Red Hat weit verbreitet.

Grundlagen der Arbeit mit Ansible

Definition und Funktionsweise

Ansible fungiert als Tool zur Konfigurationsautomatisierung, Serververwaltung, Prozess orchestrierung und Anwendungsbereitstellung. Die Architektur basiert auf Python, und zur Beschreibung von Aufgaben wird YAML als domänenspezifische Sprache (DSL) verwendet.

Wichtigste Vorteile

Die agentenlose Architektur von Ansible sorgt für eine einfache Bereitstellung und reduziert den Wartungsaufwand. Die Verwendung des SSH-Protokolls für die Verbindung zu entfernten Hosts gewährleistet die Datensicherheit. Die YAML-Syntax macht Konfigurationsdateien für Menschen lesbar und leicht wartbar.

Die Erweiterbarkeit durch Python-Module ermöglicht die Erstellung von Custom-Lösungen für spezifische Aufgaben. Die Unterstützung der Betriebssysteme Windows und Linux gewährleistet die universelle Einsetzbarkeit in heterogenen Umgebungen.

Installationsprozess

Die Installation von Ansible erfolgt über den Paketmanager pip:

pip install ansible

Eine alternative Installationsmethode über den systemeigenen Paketmanager:

sudo apt install ansible

Architektur und Systemkomponenten

Hauptkomponenten von Ansible

Komponente Zweck Beschreibung
Inventory Liste der verwalteten Hosts Enthält Informationen über Server und deren Gruppierung
Playbook Aufgabensammlung in einer YAML-Datei Beschreibt die Abfolge der auszuführenden Operationen
Module Einzelne Operation Führt spezifische Aktionen aus: Kopieren, Paketinstallation
Role Wiederverwendbare logische Struktur Fasst zusammengehörige Aufgaben in logischen Blöcken zusammen
Variable Variablen und Vorlagen Ermöglicht die Parametrisierung von Konfigurationen
Plugin Verhaltenserweiterung Fügt Funktionalität durch Callback- und Connection-Plugins hinzu

Struktur des Inventars

Das Inventory ist eine Datei, die die verwalteten Hosts und deren Gruppierung beschreibt:

[web]
web1 ansible_host=192.168.1.10
web2 ansible_host=192.168.1.11

[database]
db1 ansible_host=192.168.1.20
db2 ansible_host=192.168.1.21

Das Inventory kann Variablen für Gruppen und einzelne Hosts enthalten. Dies ermöglicht es, das Verhalten von Ansible für verschiedene Server anzupassen, ohne die eigentlichen Playbook-Dateien zu ändern.

Erstellung und Struktur von Playbooks

Grundlagen der Arbeit mit Playbooks

Ein Playbook ist ein Skript im YAML-Format, das Aufgaben und deren Ausführungsreihenfolge beschreibt. Jedes Playbook besteht aus einem oder mehreren Plays, die die Aktionen für bestimmte Hostgruppen definieren.

Die grundlegende Struktur eines Playbooks umfasst die folgenden Elemente:

- name: Install                

Blogs

Buchempfehlungen