added new secret logic for vms
This commit is contained in:
88
VAULT_RESET.md
Normal file
88
VAULT_RESET.md
Normal file
@@ -0,0 +1,88 @@
|
||||
# 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.
|
||||
|
||||
Reference in New Issue
Block a user