YAML: Was steckt hinter dem Konfigurationsformat?
YAML ist ein Textformat, mit dem Menschen und Programme Daten und Einstellungen strukturiert festhalten. Es setzt auf Einrückungen statt Klammern und gilt deshalb als besonders gut lesbar. In der IT steckt YAML vor allem in Konfigurationsdateien, etwa für Kubernetes, Docker oder automatisierte Abläufe.
Was ist YAML?
YAML ist eine Auszeichnungssprache für Daten. Sie beschreibt, welche Werte zusammengehören und wie sie verschachtelt sind. Eine YAML-Datei endet meist auf .yaml oder .yml und lässt sich mit jedem Texteditor öffnen.
Der Name ist ein kleines Wortspiel. Ursprünglich stand YAML für „Yet Another Markup Language“. Später deuteten die Entwickler das Kürzel um in „YAML Ain’t Markup Language“. Damit betonen sie, dass es um Daten geht und nicht um die Gestaltung von Dokumenten wie bei HTML. Die erste Fassung erschien 2001.
Ein Vergleich hilft: YAML funktioniert wie ein gut gegliederter Einkaufszettel. Oben stehen Überschriften wie „Obst“ oder „Getränke“, darunter eingerückt die einzelnen Posten. Wer den Zettel liest, versteht die Struktur sofort, ohne Regeln lernen zu müssen.
Wie ist eine YAML-Datei aufgebaut?
YAML kommt mit wenigen Grundbausteinen aus:
- Schlüssel-Wert-Paare: Ein Name, ein Doppelpunkt, ein Wert.
- Listen: Jeder Eintrag beginnt mit einem Bindestrich und einem Leerzeichen.
- Verschachtelung: Einrückungen mit Leerzeichen zeigen, was zu wem gehört. Klammern braucht es nicht.
- Kommentare: Alles hinter einer Raute (#) ignoriert das Programm. So lassen sich Hinweise direkt in die Datei schreiben.
Wo kommt YAML zum Einsatz?
YAML hat sich als Standard für Konfigurationen in modernen IT-Umgebungen durchgesetzt. Typische Beispiele:
- Kubernetes: Administratoren beschreiben Container, Dienste und Netzwerke in YAML-Dateien. Kubernetes setzt den beschriebenen Zustand dann um.
- Docker Compose: Eine YAML-Datei legt fest, welche Container zusammen starten und wie sie verbunden sind.
- Ansible: Das Automatisierungswerkzeug nutzt YAML für seine Playbooks, also Ablaufpläne zur Einrichtung von Servern.
- CI/CD-Pipelines: GitHub Actions, GitLab CI und Azure Pipelines definieren ihre automatischen Build- und Testschritte in YAML.
- API-Dokumentation: Mit der OpenAPI-Spezifikation beschreiben Entwickler Schnittstellen häufig in YAML.
- Anwendungen: Viele Programme speichern ihre Einstellungen in YAML, etwa Frameworks wie Spring Boot oder Home Assistant.
Der gemeinsame Nenner: YAML macht Infrastruktur als Text beschreibbar. Teams versionieren diese Dateien mit Git und behalten so jede Änderung im Blick.
Was unterscheidet YAML von JSON und XML?
Alle drei Formate speichern strukturierte Daten. Sie unterscheiden sich vor allem darin, wie gut Menschen sie lesen und schreiben können.
- YAML: Am kürzesten und am besten lesbar. Erlaubt Kommentare. Ideal für Dateien, die Menschen von Hand pflegen.
- JSON: Etwas mehr Zeichen durch Klammern und Anführungszeichen, dafür sehr eindeutig. Der Standard für den Datenaustausch über APIs. Kommentare sind nicht vorgesehen.
- XML: Am ausführlichsten, aber sehr mächtig, etwa bei der Prüfung gegen feste Schemas. Verbreitet in älteren Enterprise-Systemen und bei der E-Rechnung.
YAML und JSON sind eng verwandt: Seit Version 1.2 ist gültiges JSON fast immer auch gültiges YAML.
Worauf sollte man bei YAML achten?
Die gute Lesbarkeit hat einen Preis: YAML reagiert empfindlich auf kleine Formfehler. Ein falsches Leerzeichen kann eine ganze Konfiguration lahmlegen.
- Nur Leerzeichen, keine Tabs: YAML verbietet Tabulatoren für Einrückungen. Viele Editoren wandeln Tabs automatisch um, das sollte man prüfen.
- Einrückung konsistent halten: Üblich sind zwei Leerzeichen pro Ebene. Ein Zeichen zu viel oder zu wenig verschiebt einen Wert in die falsche Ebene.
- Werte im Zweifel in Anführungszeichen setzen: Ältere YAML-Parser lesen Werte wie „no“, „yes“ oder „on“ als Wahr oder Falsch. So wurde aus dem Ländercode „NO“ für Norwegen schon manchmal ein „false“.
- Keine Zugangsdaten in die Datei schreiben: Passwörter und API-Schlüssel gehören in einen Secrets-Manager, auch wenn die Konfiguration sie braucht.
- Dateien automatisch prüfen: Werkzeuge wie yamllint oder Editor-Plugins melden Fehler, bevor eine fehlerhafte Datei in Produktion geht.
Häufige Fragen zu YAML
Ist YAML eine Programmiersprache?
Nein. YAML beschreibt nur Daten und Einstellungen. Es enthält keine Befehle oder Logik, die ein Computer ausführt.
Was ist der Unterschied zwischen .yaml und .yml?
Keiner. Beide Dateiendungen meinen dasselbe Format. Die offizielle Empfehlung lautet .yaml, die kürzere Variante ist trotzdem weit verbreitet.
Womit öffne und bearbeite ich YAML-Dateien?
Mit jedem Texteditor. Komfortabler sind Code-Editoren wie Visual Studio Code, die Einrückungen hervorheben und Fehler markieren.
Kann ich YAML in JSON umwandeln?
Ja. Viele Online-Konverter und Kommandozeilen-Werkzeuge übersetzen zwischen beiden Formaten. Kommentare aus YAML gehen dabei verloren, weil JSON sie nicht kennt.
Brauche ich YAML als Nicht-Entwickler?
Selten direkt. Wer aber mit Dienstleistern über Kubernetes, Automatisierung oder Cloud-Infrastruktur spricht, begegnet dem Begriff regelmäßig.
Verwandte Begriffe
JSON, XML, Konfigurationsdatei, Kubernetes, Docker, Ansible, CI/CD, Infrastructure as Code, Git, API
Das muss man gelesen haben?
Behalten Sie ihr Wissen nicht für sich und teilen Sie diesen Beitrag.