Web-, App- und Datenbankebenen koordinieren
Orchestrieren Sie ein mehrschichtiges Rollout.
Web-, App- und Datenbankebenen koordinieren ist eine kostenlose Ansible Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Ansible Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Ansible Academy-Kurs umfasst insgesamt 4 Lektionen.
Echte Anwendungen haben Ebenen
Ein typischer Stack ist in Ebenen aufgeteilt: Webserver, App-Server und eine Datenbank. Jede Ebene hat ihre eigene Aufgabe und ihre eigene Bereitstellungsreihenfolge. 🏗️
Die Reihenfolge ist wichtig
Normalerweise starten Sie zuerst die Datenbank, dann die App und anschließend die Web-Ebene. Werden die Ebenen in der falschen Reihenfolge konfiguriert, schlägt der Rollout fehl.
Ein Play pro Ebene
Geben Sie jeder Ebene ein eigenes Play in einem einzigen Playbook. Plays werden von oben nach unten ausgeführt, daher legt ihre Reihenfolge die Bereitstellungssequenz fest.
- hosts: db
roles: [postgres]
- hosts: app
roles: [backend]
- hosts: web
roles: [nginx]Gruppen entsprechen den Ebenen
Ihre Inventory-Gruppen wie db, app und web entsprechen den Hosts, auf die die jeweiligen Plays zielen. Das Inventory bildet das Rückgrat der Orchestrierung.
[db]
db01
[app]
app01
app02
[web]
web01
web02Daten zwischen Ebenen weitergeben
Die Web-Ebene benötigt häufig die IPs der App-Server. Lesen Sie diese mit hostvars und Gruppen aus, um eine Ebene mit einer anderen zu verbinden.
backends: "{{ groups['app'] | map('extract', hostvars, 'ansible_host') | list }}"Warten, bis eine Ebene bereit ist
Bestätigen Sie vor dem Start der App mit wait_for, dass der Datenbankport geöffnet ist. So verhindern Sie, dass die App einem langsamen Dienst zuvorkommt.
- ansible.builtin.wait_for:
host: db01
port: 5432
timeout: 60Migrationen einmalig ausführen
Änderungen am Datenbankschema sollten nur einmal ausgeführt werden. Kombinieren Sie run_once mit einem Delegate, damit ein App-Knoten die gemeinsame Datenbank migriert.
- ansible.builtin.command: ./migrate.sh
run_once: true
delegate_to: app01Mit delegate_to ebenenübergreifend arbeiten
Ein App-Play kann auf die Web-Ebene zugreifen, indem es eine Aufgabe an einen Webhost delegiert. Ein Playbook kann so jede Ebene koordinieren.
Ebenen für gezielte Ausführungen markieren
Fügen Sie den Plays Tags wie db, app und web hinzu, damit Sie mit --tags eine einzelne Ebene erneut bereitstellen können, wenn sich nur diese Ebene geändert hat.
- hosts: web
tags: web
roles: [nginx]Bei Fehlern im gesamten Stack sofort abbrechen
Setzen Sie any_errors_fatal, damit ein Fehler in der db-Ebene den gesamten Lauf stoppt, bevor die App-Ebene auf einer fehlerhaften Grundlage bereitgestellt wird.
- hosts: db
any_errors_fatal: true
roles: [postgres]Der gesamte Stack in einer Datei
Ein Playbook mit mehreren Plays wird zu Ihrem Bereitstellungs-rezept: jede Ebene in der richtigen Reihenfolge und die Verbindungen zwischen den Ebenen an einer zentralen Stelle.
Kurze Überprüfung
Überprüfen wir, wie die Ebenen aneinandergereiht werden.
Zusammenfassung
Koordinieren Sie die Ebenen mit einem Play pro Ebene in der Bereitstellungsreihenfolge und verbinden Sie sie über Gruppen, hostvars, wait_for und Delegation. ✅
Häufig gestellte Fragen
Ist die Lektion „Web-, App- und Datenbankebenen koordinieren“ kostenlos?
Ja — der vollständige Text von „Web-, App- und Datenbankebenen koordinieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Ansible Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Ansible Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Web-, App- und Datenbankebenen koordinieren“?
Orchestrieren Sie ein mehrschichtiges Rollout. Du übst Ansible Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Ansible Academy zu starten?
Keine Vorkenntnisse erforderlich. Ansible Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Web-, App- und Datenbankebenen koordinieren“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Ansible Academy-Lektion Code schreiben und ausführen?
Ja. Jede Ansible Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Netzwerkgeräte mit cli_command automatisieren
- delegate_to und run_once für Orchestrierung
- Web-, App- und Datenbankebenen koordinieren
- Load-Balancer-Drain und erneute Aktivierung