# Vault Reset Guide Dieses Dokument beschreibt, wie du HashiCorp Vault komplett zurücksetzt, falls das **Root Token** verloren gegangen ist oder die Instanz irreparabel beschädigt scheint. **⚠️ ACHTUNG: DATENVERLUST!** Dieser Vorgang löscht unwiderruflich: * Alle gespeicherten Secrets (Passwörter, Tokens). * Alle konfigurierten User, Policies und Engines. * Das Zertifikat (CA). Du musst anschließend alle Secrets neu einspielen (via `setup_vault_secrets.sh`). --- ## Schritt 1: Vault Container & Daten löschen Führe dies auf deinem Management-Host (`vm-management-200`) aus. Wir nutzen SSH, um die Daten auf dem Vault-Server (`vm-docker-apps-301`) zu löschen. ```bash # 1. Container stoppen und entfernen ssh -i ~/.ssh/id_ed25519_ansible_prod ansible@10.100.30.11 "docker stop vault-prod && docker rm vault-prod" # 2. Persistente Daten löschen (File Storage & Zertifikate) ssh -i ~/.ssh/id_ed25519_ansible_prod ansible@10.100.30.11 "sudo rm -rf /opt/vault/file/* /opt/vault/certs/*" ``` --- ## Schritt 2: Neu-Deployment Jetzt lassen wir Ansible den Container neu starten. Da die Verzeichnisse leer sind, wird das `entrypoint.sh` Skript: 1. Neue Zertifikate generieren. 2. Vault neu initialisieren. 3. Neue Unseal-Keys und ein neues Root-Token erstellen. ```bash # Wechsel in das Ansible Verzeichnis cd infrastructure/ansible # Playbook ausführen (ignoriere 'Permission denied' Fehler bei Secrets, da Vault leer ist) ansible-playbook -i inventory.ini deploy.yml ``` --- ## Schritt 3: Neue Zugangsdaten abholen Der neue Vault ist nun gestartet. Wir müssen uns die neuen "Schlüssel zum Königreich" holen. ```bash # 1. Neues Root Token auslesen # (ACHTUNG: Speichere dieses Token sofort in deinem Passwort-Manager!) ssh -i ~/.ssh/id_ed25519_ansible_prod ansible@10.100.30.11 "sudo cat /opt/vault/file/init_keys.json" # 2. Neues CA Zertifikat holen # (Sonst vertraut dein PC dem neuen Vault nicht) scp -i ~/.ssh/id_ed25519_ansible_prod ansible@10.100.30.11:/opt/vault/certs/ca.crt ../../vault-ca.crt ``` --- ## Schritt 4: Secrets wiederherstellen Nun nutzen wir unser Setup-Skript, um die Secrets aus deiner (hoffentlich noch vorhandenen oder neu erstellten) `bootstrap.tfvars` wieder einzuspielen. 1. **Vorbereitung:** Falls du `terraform/bootstrap.tfvars` gelöscht hattest, musst du sie neu erstellen (siehe `README.md` -> Phase 1). 2. **Import:** ```bash cd ../.. # Ins Root des Repos ./setup_vault_secrets.sh ``` * Gib das **neue** Root-Token ein (aus Schritt 3). * Das Skript aktiviert die Engines und schreibt die Secrets neu. --- ## Schritt 5: Clients aktualisieren Da wir eine neue CA haben, musst du das Zertifikat ggf. neu verteilen: * **Browser:** Importiere das neue `vault-ca.crt` in Firefox/Chrome. * **Linux Desktop:** Kopiere es nach `/usr/local/share/ca-certificates/` und führe `update-ca-certificates` aus. * **Terraform:** Das Environment (`VAULT_CACERT`) zeigt meist eh auf die Datei im Repo (`./vault-ca.crt`), die wir in Schritt 3 überschrieben haben -> Sollte direkt gehen. 🎉 **Fertig!** Dein Vault ist frisch aufgesetzt.