ansible automatisiert die Konfiguration von Servern — ohne Agent auf den Zielsystemen. Ansible verbindet sich per SSH (unter Windows per WinRM), führt Aufgaben (Tasks) aus und bringt die Systeme in den gewünschten Zustand. Playbooks sind in YAML geschrieben und dadurch leicht lesbar.
Ad-hoc-Befehle: Schnell etwas prüfen
ansible all -m ping
ansible all -m command -a "uptime"
ansible all -m ping testet die Verbindung zu allen Hosts des Inventars. Mit -m command -a "uptime" führt man einen einzelnen Befehl auf allen Servern aus — ohne ein Playbook schreiben zu müssen.
ansible all -m apt -a "name=nginx state=latest" -b— Pakete installieren (-b= sudo)ansible all -m service -a "name=nginx state=restarted" -b— Dienste neu starten
Das Inventar
[webserver]
web1.example.com
web2.example.com
Die Datei hosts (Inventar) gruppiert die Server, auf denen Ansible arbeitet. Gruppen wie [webserver] oder [datenbank] erlauben, Befehle und Playbooks gezielt nur auf bestimmte Maschinen anzuwenden.
Playbooks: Der Standardweg
ansible-playbook playbook.yml
Ein Playbook beschreibt den Soll-Zustand deklarativ — Ansible prüft, was schon erfüllt ist, und ändert nur, was nötig ist (idempotent):
---
- hosts: webserver
become: yes
tasks:
- name: Nginx installieren
apt:
name: nginx
state: present
ansible-playbook playbook.yml --check— Probelauf, ohne etwas zu ändernansible-playbook playbook.yml --syntax-check— nur Syntax prüfenansible-playbook playbook.yml --limit web1.example.com— nur einen Host ansprechenansible-playbook playbook.yml -v— ausführliche Ausgabe (-vvvfür Debugging)
Geheimnisse verschlüsseln: ansible-vault
ansible-vault encrypt group_vars/all.yml
ansible-playbook playbook.yml --ask-vault-pass
ansible-vault encrypt verschlüsselt Dateien mit Passwörtern oder Schlüsseln — damit können Secrets (API-Keys, Zugangsdaten) sicher im Repository liegen. Beim Lauf werden sie per --ask-vault-pass oder Vault-Key-Datei entschlüsselt.
Rollen und Galaxy
ansible-galaxy init meine-rolle
ansible-galaxy install geerlingguy.nginx
Rollen bündeln Tasks, Templates und Variablen zu wiederverwendbaren Bausteinen. ansible-galaxy lädt fertige Rollen aus der Ansible Galaxy Bibliothek — so bekommt man bewährte Konfigurationen für Webserver, Datenbanken und mehr.
Praxis-Tipp
Immer mit --check starten, Host-Variablen in group_vars/ und host_vars/ organisieren und Playbooks versionieren — am besten mit git. Die SSH-Grundlagen dazu stehen im Artikel ssh, scp und rsync, die Konfigurations-Syntax stammt aus YAML.