đ± 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.