Skip to content

OTOBO & Znuny System Stagingowy – Migracja i bezpieczne środowisko testowe

https://softoft.sirv.com/Images/otobo-staging-2.png 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

  1. Przygotowanie systemu deweloperskiego
  2. Konfiguracja systemu stagingowego
  3. Kopiowanie danych produkcyjnych
  4. Testowanie systemu stagingowego
  5. 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:

bash
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_PASSWORD

2. Czyszczenie systemu deweloperskiego

Jeśli używasz systemu deweloperskiego jako podstawy:

bash
# 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

bash
# 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/article

Importowanie w systemie stagingowym:

bash
# 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

perl
# 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 SendmailModule na Kernel::System::Email::DoNotSendEmail
  • Alternatywnie: Zmień serwer SMTP na 127.0.0.1 i port 1

🔬 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:

  1. Zatrzymaj serwer produkcyjny
  2. Skopiuj dane z bazy danych i katalogów systemu stagingowego do systemu produkcyjnego
  3. Dostosuj Config.pm
  4. Uruchom ponownie system produkcyjny

🧪 Przykładowe narzędzia do automatyzacji

  • Playwright (do testów E2E)
  • rsync do szybkiego transferu danych
  • docker-compose do orkiestracji środowiska
  • cron lub systemd do 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.