Zum Inhalt springen

OTOBO Staging-System – Migration und sichere Testumgebung

OTOBO Staging-System – Migration und sichere Testumgebung

Abschnitt betitelt „OTOBO Staging-System – Migration und sichere Testumgebung“

https://softoft.sirv.com/Images/otobo-staging-2.png Ein Staging-System ist die perfekte Umgebung, um Änderungen am Ticketsystem sicher zu testen – ob bei OTOBO oder Znuny. Es handelt sich um eine exakte Kopie des Produktivsystems, in dem Funktionen, Konfigurationen und Daten migriert, getestet und validiert werden – ohne Einfluss auf das Live-System.

🗾 Kompatibilität: Die in diesem Artikel beschriebenen Schritte gelten gleichermaßen für OTOBO 11.x und Znuny 6.x+. Unterschiede in Konfigurationsdateien sind minimal und werden bei Bedarf gekennzeichnet.


  1. Entwicklungssystem vorbereiten
  2. Staging-System aufsetzen
  3. Produktivdaten kopieren
  4. Staging testen
  5. Staging nach Production deployen (optional)

  • Sicheres Testen von Konfiguration, Custom Code & Packages
  • Automatisierte End-to-End-Tests mit z. B. Playwright
  • DSGVO-konformes Testen nach Anonymisierung
  • Wiederherstellungstests & Backup-Prüfung

  • Ubuntu 20.04+ oder Debian 10+
  • Docker (empfohlen) oder manuelle Linux-Installation
  • Genug Systemressourcen (8 GB RAM, 4 CPUs)
  • Zugriff auf aktuelle Produktionsdaten (DB & Dateisystem)
  • E-Mail-Versand deaktivierbar (z. B. durch Dummy-SMTP)

flowchart TD
    A[Feature bereit für Test] --> B[Dev-System bereinigen Tickets löschen]
    B --> C[Dev -> Staging kopieren]
    C --> D[Warten auf Wartungsfenster]
    D --> E[Produktivdaten sichern DB & Files]
    E --> F[Produktivdaten auf Staging übertragen]
    F --> G[Konfiguration im Staging anpassen]
    G --> H[E-Mail-Versand deaktivieren]
    H --> I[Testlauf durchführen]
    
    I -->|Tests erfolgreich| J[Optional: Staging -> Production kopieren]
    I -->|Tests fehlgeschlagen| K[Fehler beheben und erneut testen]

    J --> L[Production aktivieren]
    L --> M[Fertig Deployment abgeschlossen]

    style D fill:#a9a,stroke:#333,stroke-width:1px
    style I fill:#aae,stroke:#333,stroke-width:1px
    style J fill:#9a9,stroke:#333,stroke-width:1px
    style K fill:#a99,stroke:#333,stroke-width:1px

Empfohlen wird eine Docker-Installation:

Terminal-Fenster
sudo apt install docker.io docker-compose
cd /opt
git clone https://github.com/RotherOSS/otobo-docker.git --branch rel-11_0
cd otobo-docker
cp .docker_compose_env_https .env
nano .env # OTOBO_DB_ROOT_PASSWORD setzen

Falls Sie ein Dev-System als Basis nutzen:

Terminal-Fenster
# Tickets und Attachments löschen
bin/otobo.Console.pl Admin::Delete::Tickets --older 1d --state closed --really
rm -rf /opt/otobo/var/article/*

Terminal-Fenster
# Datenbank sichern (Produktivsystem)
mysqldump -u root -p otobo > /tmp/otobo_prod.sql
# Artikel & Kernel sichern
rsync -avz /opt/otobo/Kernel /tmp/Kernel
rsync -avz /opt/otobo/var/article /tmp/article

Im Staging importieren:

Terminal-Fenster
# DB importieren
mysql -u root -p otobo_staging < /tmp/otobo_prod.sql
# Dateisystem kopieren
rsync -avz /tmp/Kernel /opt/otobo/Kernel
rsync -avz /tmp/article /opt/otobo/var/article

🔐 Datenschutz: Anonymisieren Sie alle produktiven Kundendaten z. B. in der customer_user-Tabelle oder entfernen Sie E-Mail-Adressen mit einem SQL-Skript.


Kernel/Config.pm
$Self->{'Database'}{'Name'} = 'otobo_staging';
$Self->{'Database'}{'User'} = 'otobo';
$Self->{'Database'}{'Password'} = 'STAGING_PASSWORT';

In SysConfig:

  • SendmailModule auf Kernel::System::Email::DoNotSendEmail setzen
  • Alternativ: SMTP-Server auf 127.0.0.1 und Port 1 ändern

  • Playwright oder Cypress-Skripte einsetzen für UI-Tests
  • bin/otobo.Console.pl Maint::Test::System verwenden
  • Datenintegrität & UI-Verhalten prüfen
  • Integrationen wie LDAP oder Webservices deaktivieren oder auf Testserver umleiten

  • Zugriff via VPN oder IP-Whitelist beschränken
  • robots.txt setzen, um Indexierung zu verhindern
  • ggf. Basic-Auth via Nginx einbauen
  • SSL per SAN- oder Wildcard-Zertifikat absichern (*.staging.example.com)

Wenn im Staging vollständig getestet wurde:

  1. Production-Server stoppen
  2. Staging-Datenbank und Verzeichnisse auf Production kopieren
  3. Config.pm anpassen
  4. Production wieder starten

  • Playwright (für E2E-Tests)
  • rsync für schnelle Datenübertragung
  • docker-compose für orchestrierte Umgebung
  • cron oder systemd für regelmäßige Backups
  • Python-Skripte für Anonymisierung oder Strukturmigration

Ein OTOBO oder Znuny Staging-System bietet maximale Sicherheit bei der Einführung von Änderungen. Durch strukturierte Migration, anonymisierte Testdaten und automatisierte Tests vermeiden Sie Ausfälle und sorgen für stabile Deployments.

🔁 Tipp: Integrieren Sie die Staging-Prozesse in Ihre CI/CD-Pipeline für automatisierte Qualitätssicherung bei jeder Änderung.