0Pricing
Ansible Academy · Lektion

Rolling Deployment hinter dem Load Balancer

Veröffentlichen Sie seriell ohne Ausfallzeit.

Rolling Deployment hinter dem Load Balancer 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.

Keine Ausfallzeit ist das Versprechen

Aktualisieren Sie alle Webknoten, ohne auch nur eine Anfrage zu verlieren. Der Schlüssel ist ein Rolling-Deployment: Ändern Sie jeweils nur einige Hosts. 🔄

serial steuert den Batch

Fügen Sie Ihrem Play serial hinzu, damit Ansible die Hosts in kleinen Wellen statt alle gleichzeitig verarbeitet.

- hosts: web
  serial: 1
  tasks:
    - import_role:
        name: webapp

Auch Prozentangaben funktionieren

serial akzeptiert einen Prozentsatz oder eine Liste von Batchgrößen. So können Sie schrittweise vorgehen: zuerst ein Canary, danach größere Batches.

serial:
  - 1
  - 25%
  - 50%

Vor dem Eingriff drainen

Nehmen Sie einen Knoten vor der Aktualisierung aus der Rotation. Verwenden Sie delegate_to, um den Load-Balancer anzuweisen, keinen Traffic mehr an ihn zu senden.

- name: Drain node
  community.general.haproxy:
    state: disabled
    host: "{{ inventory_hostname }}"
  delegate_to: lb1

Warum Sie delegate_to an den LB delegieren

Der Webhost kann sich im Load-Balancer nicht selbst deaktivieren – das muss der Load-Balancer tun. delegate_to führt diese Aufgabe für jeden Webhost auf lb1 aus.

Die neue Version bereitstellen

Nachdem der Knoten drained wurde, stellen Sie den Code bereit, erzeugen Sie die Konfiguration und lassen Sie einen Handler den App-Dienst nur für diesen Host neu laden.

- name: Pull release
  ansible.builtin.git:
    repo: "{{ app_repo }}"
    version: "{{ app_version }}"
    dest: /srv/app
  notify: Reload app

Vor der Wiederaktivierung einen Health-Check durchführen

Bestätigen Sie mit uri, dass der Knoten gesund ist, bevor Sie Benutzer wieder dorthin schicken. Nehmen Sie niemals einen fehlerhaften Host wieder in den Pool auf.

- name: Wait for health
  ansible.builtin.uri:
    url: http://localhost:8080/health
    status_code: 200
  retries: 5
  delay: 3

Im Load-Balancer wieder aktivieren

Sobald der Knoten gesund ist, nehmen Sie ihn wieder in die Rotation auf – erneut über delegate_to am Load-Balancer. Der Traffic fließt dann zur neuen Version.

- name: Enable node
  community.general.haproxy:
    state: enabled
    host: "{{ inventory_hostname }}"
  delegate_to: lb1

max_fail_percentage schützt Sie

Setzen Sie max_fail_percentage, damit der Rollout abgebrochen wird, wenn zu viele Hosts fehlschlagen. So verhindern Sie, dass sich eine fehlerhafte Version weiter ausbreitet.

- hosts: web
  serial: 1
  max_fail_percentage: 20

run_once für gemeinsame Schritte

Manche Schritte, etwa eine einmalige Datenbankmigration, sollten nur ein einziges Mal ausgeführt werden. Verwenden Sie run_once, damit nur ein Host sie ausführt.

- name: Migrate db
  ansible.builtin.command: /srv/app/migrate
  run_once: true

Der vollständige Ablauf

Pro Host: drainen, bereitstellen, Health-Check durchführen, wieder aktivieren. serial wiederholt diesen Ablauf in sicheren Wellen, bis die gesamte Flotte aktualisiert ist. ✅

Kurze Überprüfung

Ein Schlüsselwort sorgt dafür, dass der LB-Schritt funktioniert.

Zusammenfassung

Sie haben ein Rolling-Deployment erstellt: serial bildet Batches, Drain und Wiederaktivierung erfolgen über delegate_to, dazu kommen Health-Checks und eine Fehlergrenze. Keine Ausfallzeit. 🟢

Häufig gestellte Fragen

Ist die Lektion „Rolling Deployment hinter dem Load Balancer“ kostenlos?

Ja — der vollständige Text von „Rolling Deployment hinter dem Load Balancer“ 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 „Rolling Deployment hinter dem Load Balancer“?

Veröffentlichen Sie seriell ohne Ausfallzeit. 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 „Rolling Deployment hinter dem Load Balancer“?

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

  1. Das Projekt konzipieren: Rollen und Inventory
  2. Hosts bereitstellen, absichern und initialisieren
  3. Rolling Deployment hinter dem Load Balancer
  4. Smoke-Tests, Rollback und Benachrichtigungen
← Zurück zu Ansible Academy