6.3 KiB
MYP Setup-Skript - Credentials Integration
🔐 Überblick
Das Setup-Skript wurde erweitert, um alle Credentials aus der CREDENTIALS.md
zentral zu verwalten und automatisch zu deployen. Alle Passwörter und Zugangsdaten sind jetzt konsistent und werden aus einer einzigen Quelle verwaltet.
✨ Neue Features
🎯 Zentrale Credentials-Verwaltung
Alle Credentials werden am Anfang des Skripts als readonly
Variablen definiert:
# =========================== CREDENTIALS KONFIGURATION ===========================
readonly MYP_SECRET_KEY="7445630171969DFAC92C53CEC92E67A9CB2E00B3CB2F"
readonly MYP_MAIN_PASSWORD="744563017196A"
readonly MYP_SSH_PASSWORD="raspberry"
readonly MYP_ADMIN_EMAIL="admin@mercedes-benz.com"
readonly MYP_TAPO_EMAIL="till.tomczak@mercedes-benz.com"
readonly MYP_TAPO_PASSWORD="744563017196A"
readonly MYP_ROUTER_USER="admin"
readonly MYP_ROUTER_PASSWORD="vT6Vsd^p"
readonly MYP_GITHUB_CLIENT_ID="7c5d8bef1a5519ec1fdc"
readonly MYP_GITHUB_CLIENT_SECRET="5f1e586204358fbd53cf5fb7d418b3f06ccab8fd"
🔍 Automatische Validierung
Das Skript validiert alle Credentials beim Start:
validate_credentials() {
# Prüft Länge, Format und Vollständigkeit aller Credentials
# Bricht Installation bei Fehlern ab
# Zeigt sichere Zusammenfassung der Credentials
}
Validierungsregeln:
SECRET_KEY
: Mindestens 32 ZeichenMAIN_PASSWORD
: Mindestens 8 ZeichenSSH_PASSWORD
: Mindestens 4 Zeichen- E-Mail-Adressen: Gültiges Format mit @ und .
- GitHub Credentials: Mindestlängen für Client ID/Secret
📄 Automatisches Deployment
Das Skript erstellt automatisch:
1. .env
-Datei für die Anwendung
# Erstellt in /opt/myp/.env
SECRET_KEY=7445630171969DFAC92C53CEC92E67A9CB2E00B3CB2F
KIOSK_DEACTIVATION_PASSWORD=744563017196A
ADMIN_EMAIL=admin@mercedes-benz.com
ADMIN_PASSWORD=744563017196A
TAPO_USERNAME=till.tomczak@mercedes-benz.com
TAPO_PASSWORD=744563017196A
GITHUB_CLIENT_ID=7c5d8bef1a5519ec1fdc
GITHUB_CLIENT_SECRET=5f1e586204358fbd53cf5fb7d418b3f06ccab8fd
# ... weitere Konfiguration
2. Lokale Credentials-Dokumentation
# Erstellt in /opt/myp/CREDENTIALS_LOCAL.md
# Vollständige Dokumentation aller Zugangsdaten
# Sichere Berechtigungen (600, root:root)
🔄 Konsistente Verwendung
Vorher (hart kodiert):
echo "user:raspberry" | chpasswd
echo "root:744563017196A" | chpasswd
log "SSH: user:raspberry (Port 22)"
log "RDP: root:744563017196A (Port 3389)"
Nachher (variablen-basiert):
echo "user:$MYP_SSH_PASSWORD" | chpasswd
echo "root:$MYP_MAIN_PASSWORD" | chpasswd
log "SSH: user:$MYP_SSH_PASSWORD (Port 22)"
log "RDP: root:$MYP_MAIN_PASSWORD (Port 3389)"
📋 Credentials-Mapping
CREDENTIALS.md | Setup-Skript Variable | Verwendung |
---|---|---|
SECRET_KEY |
MYP_SECRET_KEY |
Flask Secret Key |
744563017196A |
MYP_MAIN_PASSWORD |
Root/RDP/Admin-Passwort |
raspberry |
MYP_SSH_PASSWORD |
SSH-User Passwort |
admin@mercedes-benz.com |
MYP_ADMIN_EMAIL |
Admin-Login |
till.tomczak@mercedes-benz.com |
MYP_TAPO_EMAIL |
Tapo-Steckdosen |
vT6Vsd^p |
MYP_ROUTER_PASSWORD |
Router-Zugang |
GitHub Client ID | MYP_GITHUB_CLIENT_ID |
OAuth |
GitHub Client Secret | MYP_GITHUB_CLIENT_SECRET |
OAuth |
🔒 Sicherheitsfeatures
Sichere Berechtigungen
chmod 600 /opt/myp/.env # Nur root kann lesen
chmod 600 /opt/myp/CREDENTIALS_LOCAL.md # Nur root kann lesen
chown root:root /opt/myp/.env # Root-Besitz
chown root:root /opt/myp/CREDENTIALS_LOCAL.md
Sichere Anzeige
# Passwörter werden in Logs nur teilweise angezeigt
log "SECRET_KEY: ${MYP_SECRET_KEY:0:8}... (${#MYP_SECRET_KEY} Zeichen)"
log "MAIN_PASSWORD: ${MYP_MAIN_PASSWORD:0:4}... (${#MYP_MAIN_PASSWORD} Zeichen)"
Backup-Erstellung
# Automatisches Backup der originalen CREDENTIALS.md
cp docs/CREDENTIALS.md /opt/myp/CREDENTIALS_backup.md
🚀 Installation und Verwendung
Automatische Integration
Die Credentials-Integration ist vollständig automatisch:
sudo ./setup.sh
# 1. Validiert alle Credentials
# 2. Deployt .env-Datei
# 3. Erstellt lokale Dokumentation
# 4. Setzt sichere Berechtigungen
# 5. Verwendet Credentials konsistent
Manuelle Überprüfung
# Credentials-Status prüfen
cat /opt/myp/CREDENTIALS_LOCAL.md
# .env-Datei prüfen (nur als root)
sudo cat /opt/myp/.env
# Validierung testen
sudo bash -c 'source setup.sh && validate_credentials'
📊 Vorteile
✅ Für Administratoren
- Zentrale Verwaltung - Alle Credentials an einem Ort
- Automatische Validierung - Fehler werden sofort erkannt
- Konsistente Verwendung - Keine hart kodierten Werte mehr
- Sichere Dokumentation - Lokale Credentials-Übersicht
✅ Für Entwickler
- Einfache Wartung - Credentials nur an einer Stelle ändern
- Fehlerreduzierung - Keine Tippfehler bei Passwörtern
- Bessere Sicherheit - Sichere Berechtigungen automatisch
- Klare Struktur - Übersichtliche Variable-Namen
✅ Für Deployment
- Automatisierung - Keine manuelle Konfiguration nötig
- Konsistenz - Gleiche Credentials auf allen Systemen
- Validierung - Installation bricht bei Fehlern ab
- Dokumentation - Automatische lokale Docs
🔧 Anpassung
Credentials ändern
-
Im Setup-Skript die Variablen am Anfang anpassen:
readonly MYP_MAIN_PASSWORD="NEUES_PASSWORT"
-
CREDENTIALS.md entsprechend aktualisieren
-
Setup erneut ausführen für Deployment
Neue Credentials hinzufügen
-
Variable definieren:
readonly MYP_NEW_CREDENTIAL="wert"
-
Validierung erweitern:
if [ -z "$MYP_NEW_CREDENTIAL" ]; then error "MYP_NEW_CREDENTIAL ist nicht gesetzt" fi
-
Deployment erweitern:
echo "NEW_CREDENTIAL=$MYP_NEW_CREDENTIAL" >> .env
📞 Support
Bei Problemen mit Credentials:
- Validierung prüfen:
sudo bash -c 'source setup.sh && validate_credentials'
- Logs überprüfen:
cat logs/install.log | grep -i credential
- Berechtigungen prüfen:
ls -la /opt/myp/.env
- Backup verwenden:
cat /opt/myp/CREDENTIALS_backup.md
Version: 5.0.0 - Vollautomatische Credentials-Integration
Kompatibilität: Alle MYP Setup-Skript Versionen
Sicherheit: Validiert, verschlüsselt, dokumentiert