211 lines
6.3 KiB
Markdown
211 lines
6.3 KiB
Markdown
# 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:
|
|
|
|
```bash
|
|
# =========================== 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:
|
|
|
|
```bash
|
|
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 Zeichen
|
|
- `MAIN_PASSWORD`: Mindestens 8 Zeichen
|
|
- `SSH_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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# Erstellt in /opt/myp/CREDENTIALS_LOCAL.md
|
|
# Vollständige Dokumentation aller Zugangsdaten
|
|
# Sichere Berechtigungen (600, root:root)
|
|
```
|
|
|
|
## 🔄 Konsistente Verwendung
|
|
|
|
### Vorher (hart kodiert):
|
|
```bash
|
|
echo "user:raspberry" | chpasswd
|
|
echo "root:744563017196A" | chpasswd
|
|
log "SSH: user:raspberry (Port 22)"
|
|
log "RDP: root:744563017196A (Port 3389)"
|
|
```
|
|
|
|
### Nachher (variablen-basiert):
|
|
```bash
|
|
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
|
|
```bash
|
|
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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
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
|
|
```bash
|
|
# 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
|
|
1. **Im Setup-Skript** die Variablen am Anfang anpassen:
|
|
```bash
|
|
readonly MYP_MAIN_PASSWORD="NEUES_PASSWORT"
|
|
```
|
|
|
|
2. **CREDENTIALS.md** entsprechend aktualisieren
|
|
|
|
3. **Setup erneut ausführen** für Deployment
|
|
|
|
### Neue Credentials hinzufügen
|
|
1. **Variable definieren:**
|
|
```bash
|
|
readonly MYP_NEW_CREDENTIAL="wert"
|
|
```
|
|
|
|
2. **Validierung erweitern:**
|
|
```bash
|
|
if [ -z "$MYP_NEW_CREDENTIAL" ]; then
|
|
error "MYP_NEW_CREDENTIAL ist nicht gesetzt"
|
|
fi
|
|
```
|
|
|
|
3. **Deployment erweitern:**
|
|
```bash
|
|
echo "NEW_CREDENTIAL=$MYP_NEW_CREDENTIAL" >> .env
|
|
```
|
|
|
|
## 📞 Support
|
|
|
|
Bei Problemen mit Credentials:
|
|
|
|
1. **Validierung prüfen:** `sudo bash -c 'source setup.sh && validate_credentials'`
|
|
2. **Logs überprüfen:** `cat logs/install.log | grep -i credential`
|
|
3. **Berechtigungen prüfen:** `ls -la /opt/myp/.env`
|
|
4. **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 |