OTOBO & Znuny Système de Staging – Migration et environnement de test sécurisé
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
- Préparer le système de développement
- Mettre en place le système de staging
- Copier les données de production
- Tester le staging
- 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 :
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_PASSWORD2. Nettoyage du système de développement
Si vous utilisez un système de développement comme base :
# 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
# 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/articleImporter dans le staging :
# 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
# 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
SendmailModulesurKernel::System::Email::DoNotSendEmail - Alternativement : modifier le serveur SMTP sur
127.0.0.1et le port1
🔬 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.txtpour 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 :
- Arrêter le serveur de production
- Copier la base de données et les répertoires du staging en production
- Ajuster
Config.pm - Redémarrer la production
🧪 Outils d'automatisation exemples
Playwright(pour les tests de bout en bout)rsyncpour un transfert de données rapidedocker-composepour un environnement orchestrécronousystemdpour 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.