Skip to content

OTOBO & Znuny Système de Staging – Migration et environnement de test sécurisé

https://softoft.sirv.com/Images/otobo-staging-2.png Un système de staging est l'environnement idéal pour tester en toute sécurité les modifications apportées au système de ticketing – que ce soit pour OTOBO ou Znuny. Il s'agit d'une copie exacte du système de production dans lequel les fonctionnalités, les configurations et les données sont migrées, testées et validées – sans affecter le système en direct.

INFO

🗾 Compatibilité : Les étapes décrites dans cet article s'appliquent de la même manière à OTOBO 11.x et Znuny 6.x+. Les différences dans les fichiers de configuration sont minimes et seront indiquées si nécessaire.


🔄 Aperçu : Flux de migration du système de staging

  1. Préparer le système de développement
  2. Mettre en place le système de staging
  3. Copier les données de production
  4. Tester le staging
  5. Déployer le staging en production (optionnel)

✅ Avantages d'un système de staging

  • Test sécurisé de la configuration, du code personnalisé et des packages
  • Tests automatisés de bout en bout avec, par exemple, Playwright
  • Tests conformes au RGPD après anonymisation
  • Tests de restauration et vérification des sauvegardes

🛠 Prérequis

  • Ubuntu 20.04+ ou Debian 10+
  • Docker (recommandé) ou installation manuelle sous Linux
  • Ressources système suffisantes (8 Go de RAM, 4 CPUs)
  • Accès aux données de production actuelles (base de données et système de fichiers)
  • Possibilité de désactiver l'envoi d'e-mails (par exemple, via un faux serveur SMTP)

🧱 Guide étape par étape

1. Mise en place du système de staging

Une installation Docker est recommandée :

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   # Définir OTOBO_DB_ROOT_PASSWORD

2. Nettoyage du système de développement

Si vous utilisez un système de développement comme base :

bash
# Supprimer les tickets et les pièces jointes
bin/otobo.Console.pl Admin::Delete::Tickets --older 1d --state closed --really
rm -rf /opt/otobo/var/article/*

3. Copie des données de production

bash
# Sauvegarder la base de données (système de production)
mysqldump -u root -p otobo > /tmp/otobo_prod.sql

# Sauvegarder les articles et le noyau
rsync -avz /opt/otobo/Kernel /tmp/Kernel
rsync -avz /opt/otobo/var/article /tmp/article

Importer dans le staging :

bash
# Importer la base de données
mysql -u root -p otobo_staging < /tmp/otobo_prod.sql

# Copier le système de fichiers
rsync -avz /tmp/Kernel /opt/otobo/Kernel
rsync -avz /tmp/article /opt/otobo/var/article

🔐 Protection des données : Anonymisez toutes les données clients de production, par exemple dans la table customer_user, ou supprimez les adresses e-mail avec un script SQL.


4. Ajustement de la configuration

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

5. Empêcher l'envoi d'e-mails

Dans SysConfig :

  • Définir SendmailModule sur Kernel::System::Email::DoNotSendEmail
  • Alternativement : modifier le serveur SMTP sur 127.0.0.1 et le port 1

🔬 Tests dans le staging

  • Utiliser des scripts Playwright ou Cypress pour les tests d'interface utilisateur
  • Utiliser bin/otobo.Console.pl Maint::Test::System
  • Vérifier l'intégrité des données et le comportement de l'interface utilisateur
  • Désactiver les intégrations comme LDAP ou les services Web, ou les rediriger vers des serveurs de test

🔐 Sécuriser le staging

  • Restreindre l'accès via VPN ou liste blanche d'IP
  • Définir robots.txt pour empêcher l'indexation
  • Si nécessaire, intégrer l'authentification basique via Nginx
  • Sécuriser le SSL avec un certificat SAN ou wildcard (*.staging.example.com)

🔄 Optionnel : Déployer le staging en production

Une fois que tout a été testé avec succès dans le staging :

  1. Arrêter le serveur de production
  2. Copier la base de données et les répertoires du staging en production
  3. Ajuster Config.pm
  4. Redémarrer la production

🧪 Outils d'automatisation exemples

  • Playwright (pour les tests de bout en bout)
  • rsync pour un transfert de données rapide
  • docker-compose pour un environnement orchestré
  • cron ou systemd pour les sauvegardes régulières
  • Scripts Python pour l'anonymisation ou la migration de structure

Conclusion

Un système de staging OTOBO ou Znuny offre une sécurité maximale lors de l'introduction de changements. Grâce à une migration structurée, des données de test anonymisées et des tests automatisés, vous évitez les interruptions et assurez des déploiements stables.

🔁 Astuce : Intégrez les processus de staging dans votre pipeline CI/CD pour une assurance qualité automatisée à chaque modification.