Table of Contents
YAML mit Ansible
YAML steht für "YAML Ain't Markup Language" oder "Yet Another Markup Language" und ist eine leicht lesbare Daten-Serialisierungs-Sprache. Es wird oft verwendet, um Konfigurationsdateien und Datenstrukturen in einem menschenlesbaren Format zu speichern. YAML verwendet Einrückungen und Zeilenumbrüche, um Daten hierarchisch zu strukturieren, anstatt spezielle Symbole wie Klammern oder Tags zu verwenden. Dies erleichtert die Handhabung von Konfigurationsdateien und ist in der Softwareentwicklung weit verbreitet.
In Ansible dient YAML (YAML Ain't Markup Language) als Sprache für Playbooks, um Konfigurationen zu definieren. Hier sind einige Funktionen von YAML im Ansible-Kontext:
- Playbook-Definition:
---
- name: Beispiel Playbook
hosts: all
tasks:
- name: Beispiel Task
debug:
msg: "Hallo, Welt!"
- Variablen-Definition:
---
variable1: Wert1
variable2: Wert2
- Aufgaben mit Schleifen (Iteration):
---
- name: Iteration über Liste
hosts: localhost
vars:
fruit_list:
- apple
- banana
- orange
tasks:
- name: Drucke Obst
debug:
msg: "Das Obst ist {{ item }}"
loop: "{{ fruit_list }}"
- Aufgaben mit Bedingungen:
---
- name: Bedingte Ausführung
hosts: localhost
vars:
is_production: true
tasks:
- name: Nur in der Produktion ausführen
debug:
msg: "Das ist die Produktionsumgebung"
when: is_production
- Verwendung von Dictionaries:
---
person:
name: John Doe
age: 30
occupation: Developer
- Schachtelung von Aufgaben:
---
- name: Schachtelung von Aufgaben
hosts: localhost
tasks:
- name: Hauptaufgabe
block:
- name: Unteraufgabe 1
debug:
msg: "Das ist Aufgabe 1"
- name: Unteraufgabe 2
debug:
msg: "Das ist Aufgabe 2"
rescue:
- name: Behandele Fehler
debug:
msg: "Ein Fehler ist aufgetreten"
Das sind grundlegende Beispiele, und die Verwendung von YAML in Ansible ermöglicht eine klare und leserliche Darstellung von Konfigurationen und Aufgaben.
YAML wird in der Informatik hauptsächlich für die Konfiguration von Anwendungen und Datenstrukturierung verwendet. Typische Anwendungsbereiche sind:
-
Konfigurationsdateien: YAML wird häufig verwendet, um Konfigurationsinformationen für Softwareanwendungen zu speichern. Beispiele sind Docker Compose, Kubernetes-Manifeste und Konfigurationsdateien für Anwendungen wie GitLab und Ansible.
-
Datenübertragung: YAML wird verwendet, um Daten zwischen verschiedenen Anwendungen zu übertragen, insbesondere in APIs und in der Webentwicklung. Swagger/OpenAPI und GraphQL sind Beispiele, die YAML zur Definition von API-Spezifikationen verwenden.
-
Datenstrukturierung: YAML kann verwendet werden, um strukturierte Daten darzustellen. Es wird in vielen Build-Tools und CI/CD-Pipelines verwendet, um Workflows und Aufgaben zu definieren.
-
Markdown-Metadaten: YAML-Blöcke werden manchmal in Markdown-Dokumenten verwendet, um Metadaten wie Titel, Autor und Datum zu speichern.
-
Testdefinitionen: In einigen Test-Frameworks wird YAML verwendet, um Testfälle und Konfigurationen zu definieren.
-
Dokumentation: YAML kann auch in der Dokumentation verwendet werden, um Beispiele und Strukturierungsinformationen darzustellen.
Die Verwendung von YAML hat in den letzten Jahren zugenommen, hauptsächlich in DevOps-, Container-Orchestrierungs- und Cloud-Bereichen, aber auch in vielen anderen IT-Anwendungen.
Beispiel in Docker Compose:
version: '3'
services:
webapp:
image: nginx:latest
ports:
- "80:80"
database:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: mydb
In diesen Beispielen zeigt YAML die Konfiguration von Docker Compose-Diensten auf einfache und gut lesbare Weise.
Das Wiki zu den Fächern BSA und AIS. Home