Was ist YAML?

URL kopieren

Red Hat Ressourcen

Hier ein Beispiel für eine einfache YAML-Datei für einen Datensatz eines Studierenden zur Veranschaulichung der Syntaxregeln:

#Comment: Student record
#Describes some characteristics and preferences
---
name: Martin D'vloper #key-value
age: 26
hobbies: 
  - painting #first list item
  - playing_music #second list item
  - cooking #third list item
programming_languages:
  java: Intermediate
  python: Advanced
  javascript: Beginner
favorite_food: 
  - vegetables: tomatoes 
  - fruits: 
      citrics: oranges 
      tropical: bananas
      nuts: peanuts
      sweets: raisins

Wenn Sie diese Datei mit der PyYAML-Library in Python übersetzen, erhalten Sie folgende Datenstruktur:

[
    {
        "name": "Martin D'vloper",
        "age": 26,
        "hobbies": ["painting", "playing_music", "cooking"],
        "programming_languages": {
            "java": "Intermediate",
            "python": "Advanced",
            "javascript": "Beginner",
        },
        "favorite_food": [
            {"vegetables": "tomatoes"},
            {
                "fruits": {
                    "citrics": "oranges",
                    "tropical": "bananas",
                    "nuts": "peanuts",
                    "sweets": "raisins",
                }
            },
        ],
    }
]

Lernpfad YAML Essentials for Ansible erkunden

Eine der häufigsten Anwendungen von YAML ist das Erstellen 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.

YAML in Ansible

Ansible Playbooks werden zum Orchestrieren 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 den Sprachen 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 Aufgaben in einer bestimmten 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.Entwicklungsteams können über den Befehl ansible-lint, einen YAML-Linter für Ansible Playbooks, Fehler erkennen, die bei kritischen Geschäftsabläufen Probleme verursachen könnten.

Mit Ansible Lightspeed with IBM Watson Code Assistant, einem auf generativer KI basierenden Service, können sie Ansible-Automatisierungsinhalte außerdem effizienter erstellen. Nutzende können Anfragen in einfachem Englisch eingeben und erhalten korrekte und konforme YAML-Code-Empfehlungen für Automatisierungsaufgaben, die dann zur Erstellung von Ansible Playbooks verwendet werden.

Die Grundlagen von Ansible kennenlernen

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.

Zur Einführung zu Kubernetes für Unternehmen

Dank der von Menschen lesbaren YAML-Automatisierungssprache von Red Hat Ansible Automation Platform lassen sich Automatisierungsinhalte im gesamten Unternehmen teilen, überprüfen und verwalten. Die Plattform umfasst sämtliche Tools, die zur Implementierung einer unternehmensweiten Automatisierung benötigt werden, darunter Playbooks und Analysen. Nutzende können ihre IT-Infrastruktur u. a. mit einem visuellen Dashboard und RBAC (Role-based Access Control) zentralisieren und kontrollieren und so die operative Komplexität reduzieren.

Red Hat Subskriptionen bieten Ihnen zertifizierte Inhalte, ein robustes Partner-Netzwerk, Zugriff auf gehostete Managementservices und technischen Lifecycle-Support, mit dem Ihre Teams Automatisierung im gesamten Unternehmen erstellen, verwalten und skalieren können. Außerdem profitieren Sie von unserem Fachwissen, das wir bei unserer erfolgreichen Zusammenarbeit mit Tausenden von Kunden entwickelt haben.

Mehr über Ansible Automation Platform erfahren

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 Entwicklungsteams 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.

Mehr über OpenShift erfahren

Ressource

CI/CD-Optimierung mit Red Hat Ansible Automation Platform

Erfahren Sie, wie Sie mit Red Hat Ansible Automation Platform komplexe IT-Umgebungen effizient verwalten, Sicherheitsabläufe automatisieren und das Deployment beschleunigen können.

Red Hat Testversionen

Unsere kostenlosen Testversionen unterstützen Sie dabei, praktische Erfahrungen zu sammeln, sich auf eine Zertifizierung vorzubereiten oder zu bewerten, ob ein Produkt die richtige Wahl für Ihr Unternehmen ist.

Weiterlesen

Was ist ITSM? IT-Servicemanagement und ITSM-Prozesse erklärt

ITSM ist der strategische Ansatz zur Bereitstellung von IT als Service. Entdecken Sie den Zusammenhang zwischen ITSM, ITIL und DevOps für effiziente Abläufe.

Aufbau eines Center of Excellence für die IT-Automatisierung

Automatisierung mithilfe eines Automation Center of Excellence (CoE) umsetzen. Erfahren Sie, wie Sie ein Team gründen, um Strategie und Akzeptanz zu fördern.

Was ist Cloud-Automatisierung? Cloud Computing Automation

Cloud-Automatisierung reduziert manuelle Aufgaben und sorgt für mehr Skalierbarkeit. Verbessern Sie die Verwaltung Ihrer Hybrid- und Multi-Cloud-Umgebungen.

Ressourcen zu Automatisierung und Management

Verwandte Artikel