Skip to content

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

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

  1. Préparer le système de développement
  2. Configurer le système de préproduction
  3. Copier les données de production
  4. Tester le système de préproduction
  5. 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 :

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. Nettoyer le 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. Copier les 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 système de préproduction :

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 client de production, par exemple dans la table customer_user, ou supprimez les adresses e-mail avec un script SQL.


4. Personnaliser la configuration

perl
# 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 sur Kernel::System::Email::DoNotSendEmail
  • Alternativement : modifier le serveur SMTP sur 127.0.0.1 et le port 1

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

  1. Arrêter le serveur de production
  2. Copier la base de données et les répertoires du système de préproduction sur la production
  3. Personnaliser 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 une orchestration de l'environnement
  • cron ou systemd 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.