Zum Inhalt springen

Znuny Staging-System – Migration und sichere Testumgebung

Ein Staging-System ist die perfekte Umgebung, um Änderungen am Ticketsystem sicher zu testen – bei 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.

  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 Compose (empfohlen) oder offizielle Linux-Installation
  • Genug Systemressourcen (8 GB RAM, 4 CPUs)
  • Zugriff auf aktuelle Produktionsdaten (DB & Dateisystem)
  • E-Mail-Versand deaktivierbar (z. B. durch Dummy-SMTP)

Eine Docker-Compose-Installation ist der schnellste Weg zu einer isolierten Staging-Instanz:

  1. Znuny mit Docker Compose installieren auf einer separaten VM oder einem eigenen Host.
  2. Anderen Compose-Projektnamen oder ein separates Verzeichnis als in Produktion verwenden, damit Volumes nicht kollidieren.
  3. Web-Installer mit separater Datenbank (leeres Schema) abschließen.
  4. Für den laufenden Betrieb: Znuny Docker (Backups, Konsolenbefehle, Updates).

Für Bare-Metal-Staging die offizielle Installationsanleitung auf einem dedizierten Server befolgen.

Falls Sie ein Dev-System als Basis nutzen:

  • Test-Tickets und Agenten entfernen, die nicht benötigt werden.
  • SysConfig-Werte zurücksetzen, die auf Produktiv-URLs, LDAP oder Mailserver zeigen.
  • Prüfen, dass keine Produktiv-API-Keys oder Web-Service-Zugangsdaten verbleiben.

Datenbank:

Terminal-Fenster
# Auf Produktion (Beispiel MariaDB)
mysqldump -u root -p znuny > znuny-prod-$(date +%F).sql
# Auf Staging — in den DB-Container importieren
docker compose exec -T db mysql -u root -p znuny < znuny-prod-$(date +%F).sql

Dateisystem / Volumes:

Das var-Verzeichnis (Anhänge, Sessions) von Produktion kopieren. Bei Docker-Stacks typischerweise das Volume znuny-var — siehe Volume-Backup.

Datenschutz: Anonymisieren Sie alle produktiven Kundendaten z. B. in der customer_user-Tabelle oder entfernen Sie E-Mail-Adressen mit einem SQL-Skript, bevor Tester Zugang zum Staging erhalten.

In SysConfig auf Staging:

  • System-FQDN und HTTP-URLs auf den Staging-Hostnamen setzen.
  • LDAP und externe Integrationen auf Test-Endpunkte zeigen oder deaktivieren.
  • Cache-TTL bei Bedarf senken für schnelleres Feedback beim Testen.

In SysConfig:

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

Nach umfangreichen SysConfig-Änderungen im App-Container Maint::Config::Rebuild und Maint::Cache::Delete ausführen.

  • Playwright oder Cypress-Skripte einsetzen für UI-Tests
  • bin/znuny.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 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.

Znuny Hosting & Wartungsservice

Sorgenfreier Znuny-Betrieb: Softoft übernimmt Hosting, Staging-Umgebungen, regelmäßige Updates, Backups und kontinuierliches Monitoring.

Häufig gestellte Fragen

Warum ist ein Znuny Staging-System unerlässlich und welche Vorteile bietet es?

Ein Znuny Staging-System ist eine unverzichtbare Komponente in der Softwareentwicklung und -wartung, da es eine exakte Kopie des Produktivsystems darstellt. Es ermöglicht Ihnen, neue Funktionen, Konfigurationen, Updates oder Migrationen in einer isolierten Umgebung zu testen, ohne das Risiko einzugehen, das Live-Ticketsystem zu beeinträchtigen. Die Hauptvorteile umfassen:

  • Sicheres Testen: Änderungen an Konfigurationen, eigenem Code oder installierten Paketen können gefahrlos geprüft werden.
  • Automatisierte Tests: Es ist die ideale Plattform für End-to-End-Tests mit Tools wie Playwright oder Cypress.
  • DSGVO-konformes Testen: Nach der Anonymisierung sensibler Kundendaten können Tests durchgeführt werden, die den Datenschutzrichtlinien entsprechen.
  • Wiederherstellungstests: Sie können Backup- und Wiederherstellungsprozesse validieren, um die Datenintegrität zu gewährleisten.
  • Fehlervermeidung: Potentielle Probleme werden frühzeitig erkannt und behoben, bevor sie das Produktivsystem erreichen.
    Quellen:
  • Cloning a System for Staging or Development - Znuny Documentation
  • Znuny Staging-System – Migration und sichere Testumgebung
Wie richte ich ein Znuny Staging-System am schnellsten mit Docker Compose ein?

Der schnellste und empfohlene Weg, ein isoliertes Znuny Staging-System aufzusetzen, ist die Verwendung von Docker Compose. Zunächst installieren Sie Znuny mit Docker Compose auf einer separaten virtuellen Maschine oder einem dedizierten Host. Es ist entscheidend, einen anderen Compose-Projektnamen zu wählen oder das Staging-System in einem separaten Verzeichnis zu installieren, um Kollisionen mit den Volumes des Produktivsystems zu vermeiden. Nach der Installation schließen Sie den Web-Installer mit einer separaten, leeren Datenbank ab. Für den laufenden Betrieb, wie Backups, Konsolenbefehle und Updates, nutzen Sie die im Artikel beschriebenen Znuny Docker-Befehle. Dies gewährleistet eine saubere Trennung und einfache Verwaltung Ihrer Staging-Umgebung.
Quellen:

Wie kopiere ich Produktivdaten sicher auf das Staging-System und was muss ich bezüglich DSGVO beachten?

Das Kopieren von Produktionsdaten ist ein kritischer Schritt. Für die Datenbank (z.B. MariaDB) exportieren Sie die Daten vom Produktivsystem mittels mysqldump und importieren sie anschließend in den Datenbank-Container Ihres Staging-Systems. Ein Beispielbefehl wäre docker compose exec -T db mysql -u root -p znuny < znuny-prod-$(date +%F).sql. Das Dateisystem, insbesondere das var-Verzeichnis, welches Anhänge und Sessions enthält, muss ebenfalls kopiert werden. Bei Docker-Stacks entspricht dies typischerweise dem Volume znuny-var.

Bezüglich der DSGVO ist es absolut entscheidend, alle produktiven Kundendaten zu anonymisieren, bevor Tester Zugang zum Staging-System erhalten. Dies betrifft insbesondere sensible Informationen in Tabellen wie customer_user. Sie sollten E-Mail-Adressen, Namen und andere personenbezogene Daten mit einem SQL-Skript oder einem anderen Anonymisierungstool unkenntlich machen, um die Einhaltung der Datenschutzbestimmungen zu gewährleisten.
Quellen:

Welche Maßnahmen sind notwendig, um den E-Mail-Versand auf dem Znuny Staging-System zu unterbinden?

Um zu verhindern, dass Ihr Znuny Staging-System versehentlich echte E-Mails an Kunden oder externe Systeme sendet, müssen Sie den E-Mail-Versand explizit deaktivieren. Die effektivste Methode ist die Anpassung der SysConfig: Setzen Sie den Wert für SendmailModule auf Kernel::System::Email::DoNotSendEmail. Dies ist eine integrierte Funktion, die den Versand von E-Mails komplett unterbindet. Alternativ können Sie den SMTP-Server in der SysConfig auf einen Dummy-Host wie 127.0.0.1 und Port 1 ändern. Nach umfangreichen Änderungen in der SysConfig ist es wichtig, die Konfiguration neu aufzubauen und den Cache zu leeren, indem Sie im App-Container die Befehle bin/znuny.Console.pl Maint::Config::Rebuild und bin/znuny.Console.pl Maint::Cache::Delete ausführen.
Quellen:

Wie kann ich mein Znuny Staging-System vor unbefugtem Zugriff und Indexierung schützen?

Der Schutz Ihres Znuny Staging-Systems ist entscheidend, um Datenlecks zu vermeiden und sicherzustellen, dass es nicht fälschlicherweise als Produktivsystem wahrgenommen wird. Beschränken Sie den Zugriff auf das System durch eine VPN-Verbindung oder eine IP-Whitelist, sodass nur autorisierte Personen darauf zugreifen können. Um eine Indexierung durch Suchmaschinen zu verhindern, legen Sie eine robots.txt-Datei an, die das Crawling der Staging-URL blockiert. Eine zusätzliche Sicherheitsebene kann durch die Implementierung einer Basic-Auth-Authentifizierung über den Webserver (z.B. Nginx) geschaffen werden. Stellen Sie außerdem sicher, dass die Kommunikation über SSL/TLS abgesichert ist, idealerweise mit einem SAN- oder Wildcard-Zertifikat (z.B. für *.staging.example.com).
Quellen:

Welche Testmethoden und Tools kann ich auf meinem Znuny Staging-System einsetzen?

Auf einem Znuny Staging-System können Sie verschiedene Testmethoden und Tools nutzen, um die Stabilität und Funktionalität Ihrer Änderungen zu gewährleisten. Für End-to-End-Tests der Benutzeroberfläche eignen sich Tools wie Playwright oder Cypress, mit denen Sie automatisierte Benutzerszenarien durchspielen können. Znuny selbst bietet mit bin/znuny.Console.pl Maint::Test::System ein Konsolenkommando zur Durchführung von Systemtests. Es ist wichtig, die Datenintegrität und das Verhalten der Benutzeroberfläche nach den Änderungen sorgfältig zu prüfen. Externe Integrationen wie LDAP oder Webservices sollten entweder deaktiviert oder auf separate Testserver umgeleitet werden, um unbeabsichtigte Auswirkungen auf Produktivsysteme zu vermeiden. Diese umfassenden Tests helfen, Fehler vor dem Deployment in die Produktion zu identifizieren.
Quellen: