Konto Anmelden
Jump to section

Was ist YAML?

URL kopieren

YAML ist eine Sprache zur Serialisierung von Daten, die häufig zum Schreiben von Konfigurationsdateien verwendet wird. Je nachdem, wen Sie fragen, steht die Abkürzung YAML für Yet Another Markup Language oder YAML Ain’t Markup Language (ein rekursives Akronym), wodurch betont wird, dass YAML für Daten und nicht für Dokumente gedacht ist. 

YAML ist eine beliebte Programmiersprache, da sie für den Menschen lesbar ist. Sie kann auch in Verbindung mit anderen Programmiersprachen verwendet werden. Diese Flexibilität und Zugänglichkeit von YAML ist auch der Grund, warum Ansible Automation damit Automatisierungsprozesse in Form von Ansible Playbooks erstellt.

YAML verfügt über Funktionen, die aus Perl, C, XML, HTML und anderen Programmiersprachen stammen. YAML ist auch ein Superset von JSON, sodass JSON-Dateien in YAML gültig sind.

YAML verwendet eine Python-ähnliche Einrückung, um Verschachtelungen anzuzeigen. Tab-Zeichen sind nicht erlaubt, stattdessen werden Leerzeichen verwendet. Es gibt keine üblichen Formatsymbole wie geschweifte Klammern, eckige Klammern, schließende Tags oder Anführungszeichen. YAML-Dateien haben die Endung .yml oder .yaml. 

Die Struktur einer YAML-Datei ist eine Map oder eine Liste.

Mit Maps können Sie Schlüssel-Wert-Paare verknüpfen. Jeder Schlüssel muss eindeutig sein, und die Reihenfolge spielt keine Rolle. Denken Sie an ein Python-Dictionary oder eine Variablenzuweisung in einem Bash-Skript.

Bevor eine Map in YAML geschlossen werden kann, muss sie gelöst werden, und es wird eine neue Map erstellt. Eine neue Map kann entweder durch Erhöhen der Einrückungsstufe oder durch Auflösen der vorherigen Map und Starten einer angrenzenden Map erstellt werden. 

Eine Liste enthält Werte, die in einer bestimmten Reihenfolge aufgeführt sind, und kann eine beliebige Anzahl von Elementen enthalten. Eine Listenfolge beginnt mit einem Bindestrich (-) und einem Leerzeichen, während sie durch Einrückung vom übergeordneten Text getrennt wird. Sie können sich eine Sequenz wie eine Liste in Python oder ein Array in Bash oder Perl vorstellen. Eine Liste kann in eine Map eingebettet werden. 

YAML enthält auch Skalare, d. h. beliebige Daten (codiert in Unicode), die als Werte wie Strings, Ganzzahlen, Datumsangaben, Ziffern oder Boolesche Werte verwendet werden können.

Bei der Erstellung einer YAML-Datei müssen Sie darauf achten, dass Sie diese Syntaxregeln einhalten und Ihre Datei gültig ist. Ein Linter ist eine Anwendung, die die Syntax einer Datei prüft. Mithilfe des Befehls yamllint können Sie sicherstellen, dass Sie eine gültige YAML-Datei erstellt haben, bevor Sie diese an eine Anwendung übergeben.

Hier ein Beispiel für eine einfache YAML-Datei für einen Datensatz eines Beschäftigten zur Veranschaulichung der Syntaxregeln.

---
# An employee record
name: Martin D'vloper
job: Developer
skill: Elite
employed: True
foods:
  - Apple
  - Orange
  - Strawberry
  - Mango
languages:
  perl: Elite
  python: Elite
  pascal: Lame
education: |
  4 GCSEs
  3 A-Levels
  BSc in the Internet of Things

Eine der häufigsten Anwendungen von YAML ist die Erstellung von Konfigurationsdateien. Es wird empfohlen, Konfigurationsdateien in YAML und nicht in JSON zu schreiben, auch wenn diese in den meisten Fällen austauschbar sind, da YAML besser lesbar und benutzerfreundlicher ist.  

Neben seiner Verwendung in Ansible wird YAML auch für Kubernetes-Ressourcen und -Deployments genutzt. 

Ein Vorteil der Verwendung von YAML ist, dass YAML-Dateien in die Versionskontrolle, wie z. B. Github, eingebunden werden können, sodass Änderungen nachverfolgt und überprüft werden können. 

Worin unterscheiden sich Ansible und die Red Hat Ansible Automation Platform?

YAML in Ansible

Ansible Playbooks werden zur Orchestrierung von IT-Prozessen verwendet. Bei einem Playbook handelt es sich um eine YAML-Datei, die ein oder mehrere Plays enthält und dazu verwendet wird, den gewünschten Zustand eines Systems zu definieren. 

Jedes Play kann eine oder mehrere Aufgaben ausführen, und jede Aufgabe ruft ein Ansible-Modul auf. Module werden dazu verwendet, Automatisierungsaufgaben in Ansible durchzuführen. Ansible-Module können in jeder Sprache geschrieben werden, die JSON zurückgeben kann, beispielsweise Ruby, Python oder Bash.

Eine Ansible Playbook besteht aus Maps und Listen. Zur Erstellung eines Playbooks beginnen Sie mit einer YAML-Liste, die den Namen des Playbooks enthält und dann die Tasks in einer Reihenfolge auflistet. Beachten Sie, dass die Einrückung kein Hinweis auf logische Verknüpfung ist. Stellen Sie sich jede Zeile als YAML-Datentyp (eine Liste oder eine Map) vor.

Da Ansible von Menschen lesbare YAML-Vorlagen verwendet, können Nutzerinnen und Nutzer sich wiederholende Aufgaben so programmieren, dass sie automatisch ausgeführt werden – ohne dass sie eine schwierige Programmiersprache lernen müssen.

YAML für Kubernetes

Kubernetes basiert auf dem Prinzip eines gewünschten und eines tatsächlichen Zustands. Kubernetes-Objekte repräsentieren den Zustand eines Clusters und kommunizieren an Kubernetes, wie die Workload aussehen soll. Kubernetes-Ressourcen wie Pods, Objekte und Deployments können mit YAML-Dateien erstellt werden. 

Wenn Sie ein Kubernetes-Objekt erstellen, müssen Sie Spezifikationen einfügen, um den gewünschten Zustand des Objekts zu definieren. Die Kubernetes-API kann zur Erstellung des Objekts verwendet werden. Die Anforderung an die API enthält die Objektspezifikationen in JSON, aber in den meisten Fällen werden Sie kubectl die erforderlichen Informationen als YAML-Datei zur Verfügung stellen. Kubectl konvertiert die Datei für Sie in YAML, wenn es die API-Anforderung stellt.

Sobald ein Objekt erstellt und definiert worden ist, stellt Kubernetes sicher, dass es kontinuierlich existiert. 

Entwickler oder Systemadministratoren geben den gewünschten Zustand mit den YAML- oder JSON-Dateien an, die sie an die Kubernetes-API übermitteln. Mithilfe eines Controllers vergleicht Kubernetes den neuen definierten mit dem tatsächlichen Zustand des Clusters.

decorative Kubernetes graphic

Forrester-Bericht zu Kubernetes und Containern

10 Fakten, die jeder Cloud-Leader über Kubernetes und Container wissen sollte

Die von Menschen lesbare YAML-Automatisierungssprache der Red Hat Ansible Automation Platform ermöglicht es Benutzern im gesamten Unternehmen, Automatisierungsinhalte miteinander zu teilen, zu überprüfen und zu verwalten.

Die Ansible Automation Platform umfasst alle Tools, die zur Implementierung einer unternehmensweiten Automatisierung benötigt werden, darunter Playbooks und Analysen. Nutzerinnen und Nutzer können ihre IT-Infrastruktur u. a. mit einem visuellen Dashboard und rollenbasierter Zugriffskontrolle zentralisieren und kontrollieren und so die operative Komplexität reduzieren.

Red Hat OpenShift ist eine Kubernetes-Plattform für Unternehmen. Sie integriert alle zusätzlichen Technologiekomponenten, die Kubernetes leistungsstark und unternehmenstauglich machen, darunter Registry, Networking, Telemetrie, Sicherheit, Automatisierung und Services.

Mit OpenShift können Entwickler neue containerisierte Apps erstellen, hosten und in der Cloud mit der Skalierbarkeit, Kontrolle und Orchestrierung bereitstellen, die man braucht, um aus einer guten Idee schnell und einfach ein neues Geschäft zu machen.

Weiterlesen

Artikel

Die Grundlagen von Ansible

Ansible automatisiert IT-Prozesse wie Provisionierung und Konfigurationsmanagement. Erlernen Sie die Grundlagen von Ansible mit dieser Einführung in die wichtigsten Konzepte.

Artikel

Was ist Business Process Management?

Unter Business Process Management (BPM) versteht man die Modellierung, Analyse und Optimierung von End-to-End-Geschäftsprozessen, um strategische Unternehmensziele zu erfüllen.

Artikel

Warum Red Hat für die Automatisierung?

Die Red Hat Ansible Automation Platform umfasst alle Tools, die Sie zur Implementierung einer unternehmensweiten Automatisierung und zum teamübergreifenden Teilen von Automatisierungsprozessen benötigen.

Mehr über Automatisierung

Produkte

Red Hat Consulting

Interaktionen mit unseren strategischen Beratern, die sich ein Gesamtbild von Ihrem Unternehmen machen, Ihre Herausforderungen analysieren und Ihnen helfen, diese mit umfassenden, kosteneffektiven Lösungen zu meistern.

Red Hat Ansible Automation Platform

Eine Plattform für die Implementierung unternehmensweiter Automatisierungsprozesse – unabhängig davon, in welcher Phase der Automatisierung Sie sich befinden.

Red Hat Process Automation

Eine Plattform zur Entwicklung cloudnativer Anwendungen, mit denen Geschäftsentscheidungen und -prozesse automatisiert werden können.

Ressourcen

E-Book

Das automatisierte Unternehmen: Personal und Prozesse vereinen

E-Book

Die Automatisierung von Infrastruktur-Workflows

Training

Kostenloser Trainingskurs

Ansible Essentials: Simplicity in Automation Technical Overview

Kostenloser Trainingskurs

Red Hat Ansible Automation for SAP

Illustration - mail

Möchten Sie mehr zu diesen Themen erfahren?

Abonnieren Sie unseren kostenlosen Newsletter, Red Hat Shares.

Red Hat logo LinkedInYouTubeFacebookTwitter

Produkte

Tools

Testen, kaufen und verkaufen

Kommunizieren

Über Red Hat

Als weltweit größter Anbieter von Open-Source-Software-Lösungen für Unternehmen stellen wir Linux-, Cloud-, Container- und Kubernetes-Technologien bereit. Wir bieten robuste Lösungen, die es Unternehmen erleichtern, plattform- und umgebungsübergreifend zu arbeiten – vom Rechenzentrum bis zum Netzwerkrand.

Abonnieren Sie unseren Newsletter, Red Hat Shares

Jetzt anmelden

Wählen Sie eine Sprache

© 2022 Red Hat, Inc.