Même si Zimbra 9 est sorti, je garde ma production en version 8 afin de ne pas souffrir de bug inhérents aux versions majeurs.

Mais jusqu’à peu, je n’avais pas encore pu changer de version d’OS car Zimbra ne supportais pas CentOS 8 (sorti le 07/05/2019), et c’est chose faite depuis le patch 11 (sorti le 02/07/2020). Il aura fallu attendre un peu moins d’un an avant de pouvoir effectuer la mise à jour…

A partir de la, j’ai pu monter une nouvelle VM et appliquer la méthodologie de migration « old school » par rsync. Ça m’a permis de constater que je traine cette plateforme Zimbra depuis un sacré moment car le dossier zmstat contient des statistiques remontant jusqu’au 16/01/2012 (Zimbra 8 allait sortir).

Comme il y a un sacré gap entre les versions, j’ai du adapter la procédure

1. Mise a jour du serveur CentOS 6 ainsi que Zimbra dans son dernier patch disponible

yum -y update

Une fois que c’est fait et que la machine est redémarré, on peux commencer la procédure de copie des fichiers

2. On arrête le service Zimbra afin d’éviter toute écriture

su - zimbra
zmcontrol stop

3. puis en root on commence la copie

rsync -e ssh -axvzKHS /opt/zimbra/ $NEW_ZIMBRA_IP:/tmp/zimbra

4. Entre temps, on peux lancer sur le nouveau serveur l’installation uniquement des packages de Zimbra. Il s’agit d’une installation classique, je ne vais donc pas m’étendre sur le sujet. Il faut bien veiller à sélectionner les mêmes paquets installés sur le serveur source et avoir le même nom que le serveur original.

./install.sh -s
...

5. Une fois l’installation terminé, on peux bouger (pas supprimer c’est important pour la suite) le dossier d’installation puis le remplacer par la copie du serveur source. Histoire d’être sur d’avoir les bonnes permissions sur les fichiers fraichement copié, on réapplique les bonnes permissions

mv /opt/zimbra /opt/zimbra_clean
mv /tmp/zimbra /opt/
/opt/zimbra/libexec/zmfixperms --verbose --extended

6. Dans la procédure, il faut relancer l’installation mais elle ne va pas se dérouler comme prévu car Zimbra tente d’exécuter des scripts perl destiné à une version 6 de CentOS. Il faut donc écraser le dossier existant avec le dossier d’installation initial :

mv /opt/zimbra/common/lib/perl5/ /opt/zimbra/common/lib/perl5_bak
mv /opt/zimbra_clean/common/lib/perl5 /opt/zimbra/common/lib/

Et maintenant on peux reprendre la procédure d’installation et démarrer notre Zimbra sur un CentOS 8 propre. Enjoy.

PS : Si vous utilisez ZeXtras, ce qui est mon cas, il faut le réinstaller.