đŸ± Crumbpage 33: Reflex — Wenn es brennt, denkt der Körper nicht

Subtitle: Passive Instinktbewegung — was weiß dein Wald, bevor du denkst?
Pfad: 33 — Der Reflex
Schwierigkeit: ⭐⭐⭐⭐ (4/5)
Zeit: ~2 Stunden (+ ein Restore-Test im Monat, fĂŒr immer)
Voraussetzungen: Pfad 31: Ansible, Pfad 32: Zustand, borgmatic lÀuft

„Eine Katze, die vom Tisch fĂ€llt, rechnet nicht.
Sie ist schon gelandet, bevor der Kopf das Fallen begriffen hat.
So holst du einen Node zurĂŒck: nicht durch Denken — durch geĂŒbten Reflex.“ đŸ±


🌟 Wer dich auf diesem Pfad begleitet

Kapitel 33 gehört der Katze. Sie fĂŒhrt, die anderen sichern.

Crew Rolle hier
đŸ± CloudCat FĂŒhrt. Instinkt wird Reflex. Sie springt, bevor sie denkt — weil sie es geĂŒbt hat.
🐌 Schnecki HĂ€lt sie zurĂŒck: „Erst schauen." Reflex ohne Blick ist Zappeln. --check vor echt.
🩡 GitBadger Der Reflex muss aufgeschrieben sein, sonst ist er nur GlĂŒck. Dieses Handbuch ist der Reflex.
🧠 Deepbit Fragt: Ist der Weg zurĂŒck wiederholbar? Getestet? Oder nur gehofft?
đŸ•·ïž Spider SSH — der Faden, an dem die Katze zu jedem Baum klettert, auch nachts.

đŸ„‹ Passive Instinktbewegung

Im Dojo fragt die Katze: „Was weiß dein Körper, bevor dein Kopf denkt?"

Im Wald fragt sie dasselbe:

Wenn nachts ein Node stirbt —
wonach greift deine Hand,
bevor die Angst kommt?

Wenn die Antwort „ich weiß nicht" ist, ist es zu spĂ€t zum Lernen.
Darum ĂŒben wir die Bewegung jetzt, im Ruhigen, bis sie Reflex ist.

Drei Kampf-Prinzipien, drei Ops-Reflexe:

Dojo Wald
StĂ€ndige Bewegung (Ginga) Backups laufen immer. Der Wald steht nie still → ∂W/∂t = 0.
Energie umlenken (Wing Chun) Nicht gegen das Feuer drĂŒcken. Restore erst nach /tmp — nie frontal ĂŒber Live.
Eine klare Aktion (Krav Maga, gefiltert) Im Ernstfall ein sauberer Griff: neu pflanzen. Kein Hektik-Wirbel.

🧭 Erst atmen, dann der Reflex

Bei Feuer gibt es nicht nur löschen oder laufen. Die Katze kennt den dritten Weg:
neu pflanzen. Aber nur, wenn der Samen vorher gelegt wurde.

Zwei Fragen, bevor die Hand sich bewegt:

Wurde dieser Node gesichert?   (borgmatic create lief?)
Wurde der Restore getestet?    (borgmatic extract lief schon mal?)
  • Ja, ja → der Reflex trĂ€gt. Spring.
  • Nein → wenn der Node noch lebt: erst borgmatic create. Ein Backup im Feuer schlĂ€gt kein Backup.

đŸȘ” Welches Feuer brennt? — Triage

Drei GrĂ¶ĂŸen, drei Antworten. Geh von oben nach unten.

Feuer Zeichen Springe zu
🔾 Ein Dienst hustet eine Seite down, Rest lĂ€uft A — Dienst neu starten
đŸ”¶ Daten kaputt DB/Repo/Index korrupt, Node lebt B — Aus dem Samen zurĂŒck
đŸ”„ Der ganze Baum ist weg Node tot, neu aufsetzen nötig C — Wiedergeburt

A — Ein Dienst hustet

Kleinstes Feuer. Erst schauen (Schnecki hÀlt die Katze am Schwanz), dann handeln.

# Welcher Dienst? (read-only)
ansible-playbook playbooks/dienste.yml

# Auf dem Host: Dienst angucken
systemctl status <dienst>      # z.B. nginx, gitea, qdrant, forest-api, postgresql@15-main

# Neu starten
systemctl restart <dienst>
journalctl -u <dienst> -n 50   # was war los?

Soll-Zustand wiederherstellen, falls Konfig verstellt wurde:

ansible-playbook playbooks/aufbau.yml --check   # erst gucken
ansible-playbook playbooks/aufbau.yml           # dann richten

Hilft das nicht → es ist Feuer B.


B — Daten zurĂŒckholen

Der Node lebt, aber Daten sind kaputt (DB, Gitea-Repo, Qdrant-Index).
Energie umlenken — immer erst in einen Test-Ordner, nie blind ĂŒber die Live-Daten.

1. Was liegt im Backup?

borgmatic list                    # welche Archive (Baumringe)?
borgmatic list --archive latest   # was ist drin?

2. In einen Test-Ordner auspacken (verÀndert nichts Echtes)

borgmatic extract --archive latest --destination /tmp/restore

3. Gezielt zurĂŒckspielen — je Host verschieden

backbone (.io — PostgreSQL: Chat + NetBox)

# Cluster-Dump liegt im Backup unter /tmp/restore/var/backups/pgdump/all.sql
sudo -u postgres psql -f /tmp/restore/var/backups/pgdump/all.sql
systemctl restart forest-api netbox netbox-rq

nullfeld (.org/.de/.com — Gitea sqlite + Qdrant)

# Gitea (sqlite + Repos):
systemctl stop gitea
cp -a /tmp/restore/var/lib/gitea/data/. /var/lib/gitea/data/
chown -R git:git /var/lib/gitea/data
systemctl start gitea

# Qdrant: aus gesichertem Snapshot wiederherstellen
#   Snapshots im Backup: /tmp/restore/var/lib/qdrant/snapshots/
#   -> zurĂŒcklegen, ĂŒber die API recovern, dann:
systemctl restart qdrant

⚠ Niemals eine laufende DB-Datei drĂŒberkopieren. Erst Dienst stoppen (gitea)
bzw. SQL-Dump einspielen (postgres). Das ist das Umlenken — nicht das DrĂŒcken.


C — Wiedergeburt (ganzer Node)

Das große Feuer: der Node ist weg. Eine klare Aktion — kein Wirbel.
Egal ob VM oder Bare Metal — ab Schritt 2 ist der Weg identisch.

1. Blankes Debian 12         (Strato-Image / Installer / USB)
        ↓  ← NUR hier unterscheiden sich VM und Bare Metal
2. SSH-Key reinlegen         (root, passender crumbforest_*-Key)
3. Host ins inventory.ini    (Name + ansible_host = neue IP)
4. ansible <host> -m ping    → pong? Dann hört der Wald dich.
5. ansible-playbook playbooks/aufbau.yml      → Gestalt (Pakete, Dienste)
6. Backup zurĂŒckholen        → Feuer B, Schritt 2+3 (Daten/DBs)
7. ansible-playbook playbooks/doktor.yml      → lebt der Baum?

Der Node ist nicht magisch zurĂŒckgekehrt.
Aber sein Zustand hat einen Weg nach Hause gefunden.


đŸŒ± Was NICHT im Backup ist (bewusst)

Damit du es im Feuer nicht suchst:

  • ollama-Modelle (gemma4, llama3, all-minilm, gemma:2b) — ollama pull, kein Ballast.
  • redis-Cache — flĂŒchtig, baut sich neu auf.
  • Das blanke Betriebssystem — vom Installer/Image, nicht aus Ansible.

Alles andere — Configs, DBs, Repos, Vektoren — wohnt im Samen.


đŸ§Ș Das Kata: der Restore-Test

Reflex entsteht durch Wiederholung. Ein Backup, das nie zurĂŒckgeholt wurde,
ist nur Hoffnung. Mach das einmal im Monat auf jedem Host — bis es Instinkt ist:

borgmatic create --stats                                  # frischer Baumring
borgmatic extract --archive latest --destination /tmp/restore-test
ls -la /tmp/restore-test                                  # ist alles da?
rm -rf /tmp/restore-test                                  # aufrÀumen

LĂ€uft das durch, weiß dein Körper den Weg — bevor dein Kopf das Feuer begreift.


✅ Notfall-Checkliste (zum Ausdrucken, neben den Bildschirm)

[ ] Atmen. Wurde gesichert? Wurde Restore getestet?
[ ] Welches Feuer? Dienst / Daten / ganzer Node?
[ ] Erst schauen (status, doktor, list) — dann handeln.
[ ] Restore IMMER erst nach /tmp, nie blind drĂŒber.
[ ] DB: dump einspielen / Dienst stoppen — nie Live-Datei kopieren.
[ ] Nach dem Pflanzen: doktor.yml — lebt der Baum?
[ ] Danach: frisches Backup + neuen Restore-Test.

🧒 FĂŒr kleine KrĂŒmel erklĂ€rt

Stell dir vor, du ĂŒbst, vom KlettergerĂŒst zu springen.
Beim ersten Mal denkst du nach und hast Angst.
Nach hundert Malen springst du einfach — dein Körper weiß es schon.

So ist es mit einem kaputten Computer.
Wenn du einmal im Monat ĂŒbst, ihn zurĂŒckzuholen,
dann ist es kein Schreck mehr, wenn er wirklich kaputtgeht.

Du springst. Und der Wald fÀngt dich auf.


đŸ± KrĂŒmel on. Reflex bereit. Es geht nichts verloren.