OTOBO & Znuny Système de préproduction – Migration et environnement de test sécurisé
Un système de préproduction est l'environnement idéal pour tester en toute sécurité les modifications apportées au système de tickets – 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 également à OTOBO 11.x et Znuny 6.x+. Les différences dans les fichiers de configuration sont minimes et sont indiquées si nécessaire.
🔄 Vue d'ensemble : processus de migration du système de préproduction
- Préparer le système de développement
- Configurer le système de préproduction
- Copier les données de production
- Tester le système de préproduction
- Déployer le système de préproduction sur la production (facultatif)
✅ Avantages d'un système de préproduction
- Test sécurisé de la configuration, du code personnalisé et des packages
- Tests automatisés de bout en bout avec par exemple Playwright
- Test conforme 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 Linux manuelle
- Ressources système suffisantes (8 Go de RAM, 4 CPU)
- Accès aux données de production actuelles (base de données et système de fichiers)
- Envoi de courriels désactivable (par exemple via un serveur SMTP factice)
🧱 Guide étape par étape
1. Configurer le système de préproduction
Il est recommandé d'utiliser une installation 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 # Définir OTOBO_DB_ROOT_PASSWORD
2. Nettoyer le 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. Copier les 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/article
Importer dans le système de préproduction :
# 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 client de production, par exemple dans la table
customer_user
, ou supprimez les adresses e-mail avec un script SQL.
4. Personnaliser la configuration
# Kernel/Config.pm
$Self->{'Database'}{'Name'} = 'otobo_staging';
$Self->{'Database'}{'User'} = 'otobo';
$Self->{'Database'}{'Password'} = 'STAGING_PASSWORT';
5. Désactiver l'envoi de courriels
Dans SysConfig
:
- Définir
SendmailModule
surKernel::System::Email::DoNotSendEmail
- Alternativement : modifier le serveur SMTP sur
127.0.0.1
et le port1
🔬 Tests dans le système de préproduction
- 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 telles que LDAP ou les services Web ou les rediriger vers des serveurs de test
🔐 Sécuriser le système de préproduction
- Restreindre l'accès via un VPN ou une liste blanche d'adresses IP
- Définir un fichier
robots.txt
pour empêcher l'indexation - Éventuellement, ajouter une authentification de base via Nginx
- Sécuriser via un certificat SSL SAN ou wildcard (
*.staging.example.com
)
🔄 Optionnel : déployer le système de préproduction sur la production
Si le système de préproduction a été entièrement testé :
- Arrêter le serveur de production
- Copier la base de données et les répertoires du système de préproduction sur la production
- Personnaliser
Config.pm
- Redémarrer la production
🧪 Outils d'automatisation exemples
Playwright
(pour les tests de bout en bout)rsync
pour un transfert de données rapidedocker-compose
pour une orchestration de l'environnementcron
ousystemd
pour des sauvegardes régulières- Scripts Python pour l'anonymisation ou la migration de structure
Fazit
Un système de préproduction OTOBO ou Znuny offre une sécurité maximale lors de l'introduction de modifications. Grâce à une migration structurée, des données de test anonymisées et des tests automatisés, vous évitez les défaillances et assurez des déploiements stables.
🔁 Conseil : Intégrez les processus de préproduction dans votre pipeline CI/CD pour une assurance qualité automatisée à chaque modification.