- Add pre-flight checks in deploy-update.yml - Automatically copy docker-compose.yml and nginx config in setup-infrastructure.yml - Add comprehensive deployment documentation - Ready for automated code deployments via CI/CD pipeline
3.3 KiB
3.3 KiB
Deployment Pre-Flight Check
Bevor du Code pushen kannst, prüfe diese Checkliste!
✅ Kritische Prüfungen
1. Application Stack muss deployed sein
Warum kritisch:
deploy-update.ymlerwartet, dassdocker-compose.ymlbereits existiert.envFile muss vorhanden sein für Container-Konfiguration
Prüfen:
ssh deploy@94.16.110.151
# Prüfe docker-compose.yml
test -f ~/deployment/stacks/application/docker-compose.yml && echo "✅ OK" || echo "❌ FEHLT"
# Prüfe .env
test -f ~/deployment/stacks/application/.env && echo "✅ OK" || echo "❌ FEHLT"
# Prüfe Container
cd ~/deployment/stacks/application
docker compose ps
Falls fehlend:
cd deployment/ansible
ansible-playbook -i inventory/production.yml playbooks/setup-infrastructure.yml
2. Docker Registry muss erreichbar sein
Prüfen:
# Vom Production-Server
ssh deploy@94.16.110.151
docker login git.michaelschiemer.de:5000 -u admin -p <password>
# Oder Test-Pull
docker pull git.michaelschiemer.de:5000/framework:latest
3. Gitea Runner muss laufen
Prüfen:
cd deployment/gitea-runner
docker compose ps
# Sollte zeigen: gitea-runner "Up"
In Gitea UI:
https://git.michaelschiemer.de/admin/actions/runners
- Runner sollte als "Idle" oder "Active" angezeigt werden
4. Secrets müssen konfiguriert sein
In Gitea:
https://git.michaelschiemer.de/michael/michaelschiemer/settings/secrets/actions
Prüfen:
REGISTRY_USERvorhandenREGISTRY_PASSWORDvorhandenSSH_PRIVATE_KEYvorhanden
5. SSH-Zugriff muss funktionieren
Prüfen:
# Test SSH-Verbindung
ssh -i ~/.ssh/production deploy@94.16.110.151 "echo 'SSH OK'"
🧪 Pre-Deployment Test
Test 1: Ansible-Verbindung
cd deployment/ansible
ansible -i inventory/production.yml production -m ping
# Sollte: production | SUCCESS
Test 2: Application Stack Status
cd deployment/ansible
ansible -i inventory/production.yml production -a "test -f ~/deployment/stacks/application/docker-compose.yml && echo 'OK' || echo 'MISSING'"
# Sollte: "OK"
Test 3: Docker Registry Login (vom Runner aus)
# Vom Development-Machine (wo Runner läuft)
docker login git.michaelschiemer.de:5000 -u <registry-user> -p <registry-password>
# Sollte: Login Succeeded
⚠️ Häufige Probleme
Problem: "Application Stack nicht deployed"
Symptom:
docker-compose.yml not foundFehler
Lösung:
cd deployment/ansible
ansible-playbook -i inventory/production.yml playbooks/setup-infrastructure.yml
Problem: "Registry Login fehlschlägt"
Symptom:
unauthorized: authentication required
Lösung:
- Prüfe Secrets in Gitea
- Prüfe Registry-Credentials
- Teste manuell:
docker login git.michaelschiemer.de:5000
Problem: "SSH-Verbindung fehlschlägt"
Symptom:
- Ansible kann nicht zum Server verbinden
Lösung:
- Prüfe SSH Key:
~/.ssh/production - Prüfe SSH Config
- Teste manuell:
ssh -i ~/.ssh/production deploy@94.16.110.151
✅ Alles OK? Dann los!
git add .
git commit -m "feat: Add feature"
git push origin main
Pipeline-Status:
https://git.michaelschiemer.de/michael/michaelschiemer/actions
Viel Erfolg! 🚀