OTOBO & Znuny System Stagingowy – Migracja i bezpieczne środowisko testowe
System stagingowy to idealne środowisko do bezpiecznego testowania zmian w systemie biletowym – zarówno w OTOBO, jak i Znuny. Jest to dokładna kopia systemu produkcyjnego, w której funkcje, konfiguracje i dane są migrowane, testowane i walidowane – bez wpływu na system produkcyjny.
INFO
🗾 Kompatybilność: Kroki opisane w tym artykule mają zastosowanie zarówno do OTOBO 11.x, jak i Znuny 6.x+. Różnice w plikach konfiguracyjnych są minimalne i zostaną oznaczone w razie potrzeby.
🔄 Przegląd: Przepływ migracji systemu stagingowego
- Przygotowanie systemu deweloperskiego
- Konfiguracja systemu stagingowego
- Kopiowanie danych produkcyjnych
- Testowanie systemu stagingowego
- Wdrożenie systemu stagingowego do produkcji (opcjonalnie)
✅ Zalety systemu stagingowego
- Bezpieczne testowanie konfiguracji, niestandardowego kodu i pakietów
- Zautomatyzowane testy end-to-end z użyciem np. Playwright
- Testowanie zgodne z RODO po anonimizacji
- Testy odzyskiwania i weryfikacja kopii zapasowych
🛠 Wymagania
- Ubuntu 20.04+ lub Debian 10+
- Docker (zalecane) lub ręczna instalacja w systemie Linux
- Wystarczające zasoby systemowe (8 GB RAM, 4 CPU)
- Dostęp do aktualnych danych produkcyjnych (baza danych i system plików)
- Możliwość wyłączenia wysyłki e-maili (np. za pomocą Dummy SMTP)
🧱 Instrukcja krok po kroku
1. Budowa systemu stagingowego
Zalecana jest instalacja Docker:
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 # Ustaw OTOBO_DB_ROOT_PASSWORD2. Czyszczenie systemu deweloperskiego
Jeśli używasz systemu deweloperskiego jako podstawy:
# Usuwanie biletów i załączników
bin/otobo.Console.pl Admin::Delete::Tickets --older 1d --state closed --really
rm -rf /opt/otobo/var/article/*3. Kopiowanie danych produkcyjnych
# Tworzenie kopii zapasowej bazy danych (system produkcyjny)
mysqldump -u root -p otobo > /tmp/otobo_prod.sql
# Tworzenie kopii zapasowej artykułów i jądra
rsync -avz /opt/otobo/Kernel /tmp/Kernel
rsync -avz /opt/otobo/var/article /tmp/articleImportowanie w systemie stagingowym:
# Importowanie bazy danych
mysql -u root -p otobo_staging < /tmp/otobo_prod.sql
# Kopiowanie systemu plików
rsync -avz /tmp/Kernel /opt/otobo/Kernel
rsync -avz /tmp/article /opt/otobo/var/article🔐 Ochrona danych: Anonimizuj wszystkie produkcyjne dane klientów, np. w tabeli
customer_user, lub usuń adresy e-mail za pomocą skryptu SQL.
4. Dostosowanie konfiguracji
# Kernel/Config.pm
$Self->{'Database'}{'Name'} = 'otobo_staging';
$Self->{'Database'}{'User'} = 'otobo';
$Self->{'Database'}{'Password'} = 'STAGING_PASSWORD';5. Blokowanie wysyłki e-maili
W SysConfig:
- Ustaw
SendmailModulenaKernel::System::Email::DoNotSendEmail - Alternatywnie: Zmień serwer SMTP na
127.0.0.1i port1
🔬 Testy w systemie stagingowym
- Użyj skryptów Playwright lub Cypress do testów interfejsu użytkownika
- Użyj
bin/otobo.Console.pl Maint::Test::System - Sprawdź integralność danych i zachowanie interfejsu użytkownika
- Wyłącz lub przekieruj integracje, takie jak LDAP lub usługi sieciowe, do serwerów testowych
🔐 Zabezpieczanie systemu stagingowego
- Ogranicz dostęp przez VPN lub białą listę adresów IP
- Ustaw
robots.txt, aby zapobiec indeksowaniu - W razie potrzeby dodaj Basic Auth przez Nginx
- Zabezpiecz SSL za pomocą certyfikatu SAN lub Wildcard (
*.staging.example.com)
🔄 Opcjonalnie: Wdrożenie systemu stagingowego do produkcji
Po zakończeniu wszystkich testów w systemie stagingowym:
- Zatrzymaj serwer produkcyjny
- Skopiuj dane z bazy danych i katalogów systemu stagingowego do systemu produkcyjnego
- Dostosuj
Config.pm - Uruchom ponownie system produkcyjny
🧪 Przykładowe narzędzia do automatyzacji
Playwright(do testów E2E)rsyncdo szybkiego transferu danychdocker-composedo orkiestracji środowiskacronlubsystemddo regularnych kopii zapasowych- Skrypty Python do anonimizacji lub migracji struktury
Podsumowanie
System stagingowy OTOBO lub Znuny zapewnia maksymalne bezpieczeństwo podczas wprowadzania zmian. Dzięki ustrukturyzowanej migracji, anonimizowanym danym testowym i zautomatyzowanym testom można uniknąć awarii i zapewnić stabilne wdrożenia.
🔁 Wskazówka: Zintegruj procesy stagingowe z potokiem CI/CD, aby zapewnić zautomatyzowane zapewnienie jakości przy każdej zmianie.