Zuletzt aktualisiert: 28.05.2026
Stell dir vor, du musst auf 10 Servern die gleichen Pakete installieren, Dienste starten und Konfigurationen anpassen. Manuell via SSH, mit Copy-Paste-Commands und unzähligen Fehlersuchen.
Ansible, ein Open Source Tool, das überwiegend von Red Hat entwickelt wird, automatisiert genau diese wiederkehrenden Aufgaben. Es funktioniert ohne Agenten auf Linux- und Windows-Systemen, verwendet einfache, verständliche Sprachen wie YAML oder JSON und ermöglicht skalierbare sowie fehlerfreie IT-Prozesse.
Dieser Artikel zeigt dir Schritt für Schritt die Ansible Grundlagen. Das bedeutet konkret wie du Ansible installierst, dein erstes Inventar erstellst und ein einfaches Playbook schreibst – etwa zum Bereitstellen eines Webservers auf mehreren Maschinen. Am Ende bist du in der Lage, ohne Vorkenntnisse in komplexer Programmierung selbstständig zu starten.
Ansible Grundbegriffe
Ansible basiert auf wenigen Bausteinen, die du kombinierst, um Automatisierungen zu bauen. Hier die wichtigsten Begriffe und Ansible Grundlagen mit Beispielen.
Das Inventory ist eine zentrale Datei, in der du alle deine Hosts und Hostgruppen verwaltest. Du kannst darin entweder eine einfache Liste aller Server pflegen oder sie in Gruppen strukturieren, zum Beispiel nach Umgebung (dev, test, prod) oder geografischem Standort.
vim inventory.ini---
[webserver]
web1 ansibl_host=192.168.1.10
web2 ansibl_host=192.168.1.20
[datenbank]
db1 ansible_host=192.168.1.101
db2 ansible_host=192.168.1.102So könntest du später sagen, dass ein Play nur auf der Gruppe Webserver ausgeführt werden soll.
Module sind die Bausteine, mit denen Ansible konkrete Aufgaben ausführt. Sie übernehmen z. B. das Installieren von Paketen (apt), das Kopieren von Dateien (copy) oder das Verwalten von Diensten (service). Du musst kein eigenes Programm schreiben, sondern rufst einfach das passende Modul mit den richtigen Parametern auf.
-name: nginx installieren
ansible.builtin.apt
name: nginx
state presentAnsible legt hier einen webserver an.
Ein Task ist eine einzelne Aktion, die Ansible auf einem Host ausführt. Jeder Task nutzt genau ein Modul und beschreibt, was passieren soll. Zusätzlich gibst du einen Namen an, damit du im Output sofort erkennst, welcher Schritt gerade läuft.
- name: "Paketlisten aktualisieren"
ansible.builtin.apt:
update_cache: trueEin Play ist die Kombination aus Tasks und Hostgruppen. In einem Play können mehrere Tasks verwendet werden. Diese werden nacheinander auf den gewählten Hosts ausgeführt. Im Folgenden zeige ich wie ein solches Play aussehen kann.
Es werden zwei Tasks ausgeführt: einer installiert den Webserver, der andere startet ihn.
-name: "webserver installieren"
hosts: webserver
become: true
tasks:
- name: nginx installieren
ansible.builtin.apt:
name: nginx
state: present
- name: Dienst starten
ansible.builtin.service:
name: nginx
state: started
enabled: trueEin Playbook ist das Gesamtskript. Es kann ein oder mehrere Plays enthalten. Du startest es mit ansible-playbook dein_playbook_name.yml.
Es führt dann die definierten Plays und Tasks nacheinander aus.
Was benötigst du?
Für den Control Node:
- Betriebssystem: Linux, macOS oder Windows
- Internetzugang
- Python 3
- Einen Texteditor (Vim, VS Code, Nano, etc.)
Für den Test-Managed Node:
- Betriebssystem: Linux, macOS oder WIndows
- SSH-Zugang mit Sudo-Rechten
Schritt 1: Installieren von Ansible
sudo apt update
sudo apt install ansibleSchritt 2: Erstes Inventory erstellen
Im Folgenden Schritt erstellst du die inventory.ini Datei
Diese füllst du dann auch gleich mit deinen Host-Angaben.
vim inventory.ini[host]
host1 ansible_host=192.168.1.10Schritt 3: SSH-Verbindung vorbereiten
Nach dem Erstellen der inventory.ini richtest du einen passwortlosen SSH- Zugang auf jeder Maschine ein. Hierfür generierst du auf deinem Control Node ein Schlüsselpaar und kopierst den Public Key auf jedem Managed Node.
ssh-keygen -t ed25519 -C "ansible"
ssh-copy-id user@deine.verwendete.ipSchritt 4: Erstellen eines Playbooks
Nun erstellst du dein erstes Playbook. Hierfür erstellst du eine YAML Datei im selben Verzeichnis wie deine inventory.ini und nennst sie webserver.yml. Dieses Play installiert dir auf deinem host1 einen Webserver und startet diesen gleich.
vim webserver.yml---
-name: Nginx Webserver bereitstellen
hosts: webserver
become: true
tasks:
- name: Paketlisten aktualisieren
ansible.builtin.apt:
update_cache: yes
- name: Nginx installieren
ansible.builtin.apt:
name: nginx
state: present
- name: Nginx starten
ansible.builtin.service:
name: nginx
state: started
enabled: yes
---Nach dem Speichern der YAML Datei kannst du nun zum Ausführen deines Playbooks kommen. Verwende hierfür folgenden Befehl:
ansible-playbook -i inventory.ini webserver.yml --ask-bekome-passDer Befehl bedeutet Folgendes:
- Wir verwenden ein ansible-playbook und nutzen hierfür die inventory.ini, um festzustellen, welcher Host betroffen ist.
- Wir verwenden das Play webserver.yml und mit ask-become-pass fragt Ansible uns nach dem Sudo-Passwort.
Als Gegenprobe kannst du dich nun auf deinem Manage Node anmelden und den Status von nginx testen.
Damit sind wir am Ende dieses Artikels für die Ansible Grundlagen angelangt. Ich hoffe, ich konnte dir bei deinen ersten Schritten in der Automatisierung mit Ansible helfen und dir zeigen, wie einfach sich wiederkehrende Aufgaben automatisieren lassen. Vielen Dank fürs Lesen und viel Erfolg beim Ausprobieren!
Fragen oder Unterstützung nötig?
Du möchtest Ansible produktiv einsetzen oder brauchst Hilfe bei der Automatisierung deiner Infrastruktur? Wir unterstützen dich gerne – von der ersten Einrichtung bis zum skalierbaren Betrieb.
Schreib uns einfach eine Nachricht oder melde dich unverbindlich über unser Kontaktformular und wir schauen gemeinsam, wie wir dich am besten weiterbringen.
