Difference between revisions of "Moving SME to new Hardware/fr"

From SME Server
Jump to navigationJump to search
 
(40 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{Languages|Moving_SME_to_new_Hardware}}
 
{{Languages|Moving_SME_to_new_Hardware}}
 
{{Level|Advanced}}
 
{{Level|Advanced}}
{{usefulnote}}
+
{{usefulnote/fr}}
 +
{{Warning box|type=Attention : | 1er septembre 2022. Un correctif récent apporté à rsync dans rsync-3.1.2-11.el7_9.x86_64 provoque l'échec silencieux d'Affa. Vous devrez rétrograder vers une version antérieure pour utiliser Affa v3. Affa 4 propose des correctifs pour ce problème.}}
  
 
<big><big><big>'''Déplacer un serveur SME sur une nouvelle machine'''</big></big></big>
 
<big><big><big>'''Déplacer un serveur SME sur une nouvelle machine'''</big></big></big>
Line 10: Line 11:
 
{{Warning box|type=Attention :|il faut utiliser la contribution '''smeserver-affa''' et non [http://wiki.nikoforge.org/Category:Affa Affa] ; le développeur d'Affa a abandonné SME pour la version 3 qui ne fonctionne que pour CentOS ; les mainteneurs de smeserver-affa ont implémenté dans smeserver-affa v3 les fonctions nécessaires pour le Serveur SME. Dans la suite de ce document, lorsqu'on parle d'Affa, il s'agit de la contribution smeserver-affa.}}
 
{{Warning box|type=Attention :|il faut utiliser la contribution '''smeserver-affa''' et non [http://wiki.nikoforge.org/Category:Affa Affa] ; le développeur d'Affa a abandonné SME pour la version 3 qui ne fonctionne que pour CentOS ; les mainteneurs de smeserver-affa ont implémenté dans smeserver-affa v3 les fonctions nécessaires pour le Serveur SME. Dans la suite de ce document, lorsqu'on parle d'Affa, il s'agit de la contribution smeserver-affa.}}
  
La fonction «rise» peut être également utilisée pour passer à une version logicielle supérieure. Cela est aussi valable pour passer de la version SME 8.2 à la version 9.x.
+
Affa donne 3 possibilités pour changer de matériel, qui dépendent du matériel disponible (1, 2 ou 3 serveurs, un disque USB) et de la durée acceptable d’interruption du service :
 +
* En utilisant la fonction «rise», le serveur de sauvegarde sera converti en nouveau serveur de production => 2 machines sont nécessaires - la durée de l'interruption est courte.
 +
* En utilisant les fonctions de sauvegarde normale et de restauration :
 +
:* avec 2 machines (serveur de production et serveur de sauvegarde - durée d'interruption longue) ou 3 machines (ancien serveur de production, serveur de sauvegarde et nouveau serveur de production - interruption courte) ;
 +
:* avec seulement 1 machine et un disque USB externe (interruption longue).
  
Affa rends cela possible avec une interruption de service minimale du serveur de production.
+
Ces 3 méthodes peuvent également être utilisées pour passer à une version logicielle supérieure. Cela est aussi valable pour passer de la version SME 8.2 à la version 9.x.
 +
 
 +
Affa rend cela possible avec une interruption de service minimale du serveur de production.
  
 
Dans la suite, il est convenu que <code>'''IP_prod'''</code> est l'adresse IP de votre '''serveur de production''' et <code>'''IP_nouvelle'''</code> est l’adresse IP du nouveau '''matériel serveur'''. Remplacer les espaces réservés par vos adresses IP réelles.
 
Dans la suite, il est convenu que <code>'''IP_prod'''</code> est l'adresse IP de votre '''serveur de production''' et <code>'''IP_nouvelle'''</code> est l’adresse IP du nouveau '''matériel serveur'''. Remplacer les espaces réservés par vos adresses IP réelles.
  
=== Préparation ===
+
===En utilisant la fonction « rise »===
{{Warning box|type=Attention :|avant d'envisager le passage de SME 8 à SME 9 qui va bientôt devenir urgent (31 décembre 2016), penser à vérifier l'état de boguage de chacune des contributions utilisées par le serveur SME. En effet, certaines contributions en version SME 9 ont des bogues qui n'existent pas en version SME 8 et qui peuvent, au mieux, engendrer des messages d'erreurs au redémarrage. Ces messages peuvent faire croire à un bogue de la fonction «rise» d'Affa. A ce jour (10 août 2016), il n'en est rien.}}
+
==== Préparation ====
==== Serveur de production ====
+
{{Warning box|type=Attention :|avant d'envisager le passage de SME 8 à SME 9 qui va bientôt devenir urgent (31 mars 2017), penser à vérifier l'état de boguage de chacune des contributions utilisées par le serveur SME. En effet, certaines contributions en version SME 9 ont des bogues qui n'existent pas en version SME 8 et qui peuvent, au mieux, engendrer des messages d'erreurs au redémarrage. Ces messages peuvent faire croire à un bogue de la fonction «rise» d'Affa. A ce jour (10 août 2016), il n'en est rien.}}
Activer l'accès ssh à distance pour l'administrateur dans le gestionnaire du serveur de l'<code>IP_prod</code>. Cela inclut de configurer à la fois :
+
===== Serveur de production =====
* - l' 'accès Secure shell' à partir du réseau local ;
+
Activer l'accès ssh à distance pour l'administrateur dans le gestionnaire du serveur de l'IP_prod. Cela inclut de configurer à la fois :
* - 'autoriser l'administrateur à accéder à SSH en ligne de commande en configurant à «Oui» ;
+
* l'accès Secure shell à partir du réseau local ;
* - et «Autoriser l'administrateur à se connecter à l'aide de mots de passe standards» à «Oui».
+
* autoriser l'administrateur à accéder à SSH en ligne de commande en configurant à « Oui » ;
 +
* et « Autoriser l'administrateur à se connecter à l'aide de mots de passe standards » à « Oui ».
  
<br>Se connecter en tant qu'administrateur au serveur d'<code>IP_prod</code> et lancer une msie à jour logicielle :<br>
+
<br>Se connecter en tant qu'administrateur au serveur d'IP_prod et lancer une mise à jour logicielle :<br>
  
 
  yum update
 
  yum update
Line 31: Line 39:
 
  signal-event post-upgrade; signal-event reboot
 
  signal-event post-upgrade; signal-event reboot
  
==== Nouveau matériel ====
+
===== Nouveau matériel =====
 
Installer le Serveur SME à partir du dernier CDROM/ISO. Lui attribuer une adresse IP inutilisée (<code>IP_nouvelle</code>) et désactiver la fonction DHCP.<br>
 
Installer le Serveur SME à partir du dernier CDROM/ISO. Lui attribuer une adresse IP inutilisée (<code>IP_nouvelle</code>) et désactiver la fonction DHCP.<br>
 
Activer l'accès ssh à distance dans le gestionnaire du serveur de la machine d'IP_nouvelle.
 
Activer l'accès ssh à distance dans le gestionnaire du serveur de la machine d'IP_nouvelle.
Line 42: Line 50:
  
 
Installer la contribution Affa.
 
Installer la contribution Affa.
Suivez les dernières instructions d''''[[Affa#Installation_of_Affa_3|installation d'Affa]]''' ici, en anglais pour l'instant.
+
Suivez les dernières instructions d''''[[Affa/fr#Installation_d.27Affa_v.3|installation d'Affa]]''' ici.
  
 
Se souvenir, s.v.p., de créer en ligne de commande le répertoire pour les fichiers d'archives :
 
Se souvenir, s.v.p., de créer en ligne de commande le répertoire pour les fichiers d'archives :
Line 53: Line 61:
 
La tâche Affa de sauvegarde s'appelle «ServProd».<br><br>
 
La tâche Affa de sauvegarde s'appelle «ServProd».<br><br>
  
Connectez-vous à votre <code>IP_nouvelle</code> en tant que root et éditer/créer le fichier ''/etc/affa/ServProd.conf''. En utilisant, par exemple, l'éditeur ''nano'', ajouter le texte de configuration de tâche de l'exemple suivant au nom de tâche ''ServProd'' :
+
Connectez-vous à votre <code>IP_nouvelle</code> en tant que root et éditer/créer le fichier '''/etc/affa/ServProd.conf'''. En utilisant, par exemple, l'éditeur ''nano'', ajouter le texte de configuration de tâche de l'exemple suivant au nom de tâche '''ServProd''' et adapter '''Include=XXXXX''' selon les répertoires supplémentaires qui doivent être sauvegardés, par ex., du fait des contributions installées qui fonctionnent dans /opt) :
 
  [ServProd]
 
  [ServProd]
 
  remoteHostName=192.168.0.2
 
  remoteHostName=192.168.0.2
Line 64: Line 72:
 
  DiskSpaceWarn=strict
 
  DiskSpaceWarn=strict
 
  RootDir=/var/affa
 
  RootDir=/var/affa
 +
Include=/chaque/répertoire/à/sauvegarder
 +
Include=/autre/répertoire/à/sauvegarder
 
  TimeSchedule=0630
 
  TimeSchedule=0630
 
  localNice=15
 
  localNice=15
Line 78: Line 88:
  
 
Puis sauvegarder votre fichier de configuration de tâche.
 
Puis sauvegarder votre fichier de configuration de tâche.
 +
 +
Si vous avez un certificat Letsencrypt sur le serveur de production, alors vous devriez l'inclure aussi :
 +
Include=/etc/dehydrated
  
 
Maintenant, vérifier que votre configuration est correcte :
 
Maintenant, vérifier que votre configuration est correcte :
Line 94: Line 107:
 
{{Note box|type=Note :|si vous ne vous êtes jamais connecté à <code>IP_prod</code> depuis <code>IP_nouvelle</code>, le serveur va vous demander si vous êtes sûr de l’authenticité du serveur qui répond en vous présentant sa clé RSA qu'il faut alors accepter par «yes».}}
 
{{Note box|type=Note :|si vous ne vous êtes jamais connecté à <code>IP_prod</code> depuis <code>IP_nouvelle</code>, le serveur va vous demander si vous êtes sûr de l’authenticité du serveur qui répond en vous présentant sa clé RSA qu'il faut alors accepter par «yes».}}
  
=== Copie des données ===
+
==== Copie des données ====
 
Exécuter la tâche Affa «ServProd» sur la machine d'<code>IP_nouvelle</code>.
 
Exécuter la tâche Affa «ServProd» sur la machine d'<code>IP_nouvelle</code>.
  
Line 104: Line 117:
  
 
  less /var/affa/ServProd/rpms-missing.txt
 
  less /var/affa/ServProd/rpms-missing.txt
 
'''Traduction en cours'''.
 
  
 
Vous trouverez une liste de paquets qui sont installés sur le serveur d'<code>IP_prod</code> mais non sur ce serveur d'<code>IP_nouvelle</code> et aussi des paquets installés dans différentes versions. Installer ou mettre à jour les paquets listés. Pour vérifier, vous pouvez exécuter à nouveau les étapes de ce chapitre. A la fin, le fichier rpms-missing.txt ne devrait plus avoir aucun paquet.
 
Vous trouverez une liste de paquets qui sont installés sur le serveur d'<code>IP_prod</code> mais non sur ce serveur d'<code>IP_nouvelle</code> et aussi des paquets installés dans différentes versions. Installer ou mettre à jour les paquets listés. Pour vérifier, vous pouvez exécuter à nouveau les étapes de ce chapitre. A la fin, le fichier rpms-missing.txt ne devrait plus avoir aucun paquet.
Line 113: Line 124:
 
pour révéler quelles sont les contributions installées sur l'<code>IP_prod</code>.
 
pour révéler quelles sont les contributions installées sur l'<code>IP_prod</code>.
  
=== Final data synchronization ===
+
==== Synchronisation finale des données ====
Ask your users to log off.<br>
+
Demander à vos utilisateurs de se déconnecter.<br>
Log into the <code>prodIP</code> box and stop all services that can modify data.
+
Se connecter à la machine d'<code>IP_prod</code> et arrêter tous les services qui peuvent modifier des données :
 +
 
 +
Pour SME9
 +
 
 +
SVC='qpsmtpd sqpsmtpd crond pop3 dovecot pop3s ftp httpd-e-smith smb qmail'
 +
for s in $SVC; do service $s stop; done
 +
 
 +
Pour SME8 et SME7
  
  SVC='qpsmtpd sqpsmtpd crond pop3 dovecot pop3s ftp httpd-e-smith atalk smb qmail'  
+
  SVC='qpsmtpd sqpsmtpd crond pop3 imap imaps pop3s ftp httpd-e-smith atalk smb qmail'  
 
  for s in $SVC; do service $s stop; done
 
  for s in $SVC; do service $s stop; done
  
'''''Note:''' Downtime of the production server starts here''
+
'''''Note :''' l'interruption de service du serveur de production commence ici.''
  
Log into the <code>newIP</code> box and run the Affa job again
+
Se connecter à la machine d'<code>IP_nouvelle</code> et lancer à nouveau la tâche Affa :
  
 
  affa --run prodserv
 
  affa --run prodserv
  
This run will complete very quickly as only differences since the the last run needs to be synchronsized.
+
Cette passe s'effectue très rapidement car seules les différences depuis la dernière exécution ont besoin d'être synchronisées.
  
=== Switch over to the new hardware ===
+
==== Basculement sur le nouveau matériel ====
Log into the <code>prodIP</code> box and power it off
+
Se connecter à la machine d'<code>IP_prod</code> et l'arrêter :
  
 
  poweroff
 
  poweroff
  
  
Log into the <code>newIP</code> box and rise this server to your production server
+
Se connecter à la machine d'<code>IP_nouvelle</code> et «élever» ce serveur comme votre serveur de production :
  
 
  affa --rise --all prodserv
 
  affa --rise --all prodserv
  
This action will complete very quickly as only hardlinks are used and no data is physically moved.<br>
+
Cette action s'exécutera très rapidement car seuls des liens durs sont utilisés et aucune donnée n'est déplacée physiquement.<br>
  
'''''Note:''' Do not be scared if your prompt looks different!<br><br>
+
'''''Note:''' ne pas s'effrayer si votre invite de commande a une apparence différente !<br><br>''
  
Now do a reboot
+
Effectuer maintenant un redémarrage :
  
 
  reboot
 
  reboot
'''''Note:''' Downtime of the production server ends here''
+
'''''Note :''' l'interruption de service du serveur de production se termine ici.''
 
 
  
You now have an identical copy of your old production server running on the new hardware. Your users can now log on.
+
Vous avez maintenant une copie conforme de votre ancien serveur de production en fonctionnement sur le nouveau matériel. Vos utilisateurs peuvent maintenant se connecter.
  
=== Cleaning up ===
+
==== Nettoyage ====
Remove the Affa archives
+
Effacer les archives Affa :
  
 
  /bin/rm -rf /var/affa
 
  /bin/rm -rf /var/affa
  
Remove the Affa packages and all status and configuration data
+
Supprimer les paquets Affa et toutes les données d'état et de configuration :
  
 
  yum remove smeserver-affa perl-Filesys-DiskFree
 
  yum remove smeserver-affa perl-Filesys-DiskFree
Line 162: Line 179:
 
  rm -rf /var/log/affa  
 
  rm -rf /var/log/affa  
  
'''Note:''' Don't forget to clean up /var/affa. Otherwise you will waste disk space and see strange quota reports. See this [http://forums.contribs.org/index.php?topic=40737.msg198064#msg198064 forum thread] for details.
+
'''Note :''' ne pas oublier de nettoyer /var/affa. Sinon vous perdrez de l'espace disque et vous verrez d'étranges rapports de quota. Voir ce [http://forums.contribs.org/index.php?topic=40737.msg198064#msg198064 fil de discussion] pour plus de détails.
 +
 
 +
==== Information additionnelle====
 +
===== Performance =====
 +
Avec cette méthode, vous devriez être en mesure de déplacer un serveur d'une taille typique de 500 Gb sur un nouveau matériel avec une interruption de service de moins de 20 minutes. La durée de la synchronisation finale et de l'«élévation» ne dépendent pas tant de la taille totale des fichiers que du nombre de fichiers et de répertoires.
 +
 
 +
=== En utilisant les fonctions de sauvegarde et de restauration ===
 +
La manière générale de travailler est de faire une sauvegarde de l'ancien serveur Koozali et de la restaurer sur le nouveau serveur Koozali (mise à jour ou non).
 +
La fonction «RPMCheck» peut être utilisée indirectement avec le serveur de sauvegarde (compare la liste entre l'ancien et le nouveau matériel) pour obtenir la liste des paquets rpm manquants sur le nouveau matériel mais elle n'est pas disponible pour une sauvegarde sur le disque USB externe.
 +
 
 +
==== Préparation ====
 +
 
 +
Prenez une sauvegarde de l'ancien serveur de 'production' en service (voir le fichier de configuration /etc/affa/ServProd.conf ci-dessus).
 +
{{Note box|type=Note : en utilisant la méthode fondée sur «rise», vous pouvez exécuter la première sauvegarde (qui prend beaucoup de temps) sans arrêter les services et la dernière (rapide) après la déconnexion des utilisateurs et l'arrêt des services.|}}
 +
 
 +
Après la sauvegarde, définissez une IP temporaire dans le fichier de configuration de la tâche de sauvegarde :
 +
 
 +
RemoteHostName = tem.po.ra.ry.IP
 +
 
 +
Pour une sauvegarde sur un disque USB externe, définissez :
 +
 
 +
RemoteHostName=localhost
 +
RootDir=/le/point/de/montage/du/disque
 +
 
 +
Et montez le disque. Vous devriez également faire une liste des rpm (paquets) installés.
 +
 
 +
==== Installer SME sur le nouveau matériel ====
 +
Installez au moins la même version de SME que celle utilisée sur l'ancien matériel ou une plus récente (par exemple, passage de SME8 à SME9).
 +
 
 +
===== Pour la méthode fondée sur un serveur de sauvegarde : =====
 +
* définir l' '''adresse IP temporaire''' comme adresse interne du nouveau matériel ;
 +
* à partir du serveur de sauvegarde, créez la connexion ssh entre le serveur de sauvegarde et le nouveau matériel en envoyant la clé ssh :
 +
  affa --send-key ServProd
 +
 
 +
{{Warning box|type=Attention : '''avant d'envoyer la clé publique''', il faut impérativement modifier provisoirement le serveur d'IP_prod en mettant l'accès ssh à distance à «Oui» à l'aide de mots de passe standards.
 +
Ne pas oublier de remettre cette possibilité à «Non» dès la réponse du serveur après l'entrée du mot de passe.|}}
 +
{{Note box|type=Note : si vous ne vous êtes jamais connecté(e) à <code>IP_prod</code> depuis <code>IP_nouvelle</code>, le serveur va vous demander si vous êtes sûr(e) de l’authenticité du serveur qui répond en vous présentant sa clé RSA qu'il faut alors accepter par «yes».|}}
 +
 
 +
La réponse du serveur Prod-temp-IP sera <br>
 +
  Job prodserv: root @ Prod-temp-IP's password:
 +
Entrez le mot de passe root de Prod-temp-IP. La réponse sera : <br>
 +
  Public key sent to prod-temp-IP
 +
 
 +
===== Disque USB externe : =====
 +
* installez «smeserver-affa» sur le nouveau matériel ;
 +
* montez le disque USB sur le même point de montage que pour la sauvegarde ;
 +
* allez dans l'archive scheduled.0 et copiez le fichier .ini dans /etc/affa comme fichier de configuration :
 +
cd /point-de-montage/ServProd/scheduled.0
 +
ls -a ### pour voir le fichier ini
 +
cp .ServProd.ini /etc/affa/
 +
mv /etc/affa/.ServProd.ini /etc/affa/ServProd.conf
 +
 
 +
===== En cas de mise à niveau de SME8 vers SME9 =====
 +
La restauration des données par défaut (paramètre «SMEServer=yes» dans le fichier de configuration de la tâche) configurera les dépôts de yum pour SME8 sur le nouveau serveur SME9 !
 +
 
 +
Pour éviter cela, il existe 2 possibilités :
 +
* faire une copie des deux répertoires ''/etc/yum.repos.d'' et ''/etc/yum.smerepos.d'' 'avant la restauration. Ce sera utile pour reconfigurer à la main les dépôts pour SME9 après la restauration.
 +
* ajouter dans le fichier de configuration de la tâche de sauvegarde :
 +
Exclude=/etc/yum.repos.d
 +
Exclude=/etc/yum.smerepos.d
 +
avant la dernière sauvegarde (bien sûr, si vous restaurerez à partir de la dernière sauvegarde - scheduled.0 - et pas d'une plus ancienne comme weekly.2 !)
 +
 
 +
==== Restaurer les données ====
 +
À partir du serveur de sauvegarde (ou du nouveau serveur de production, en cas de restauration à partir d'un disque USB externe), exécutez :
 +
  affa --full-restore [--preserve-new=no] [--delete=yes] ServProd
 +
pour obtenir une copie conforme de la sauvegarde.
 +
 
 +
'''Garder en tête que :'''
 +
: [--preserve-new=no] : les fichiers du serveur distant avec une heure de modification plus récente que sur la sauvegarde sont écrasés par ceux plus anciens de la sauvegarde ;
 +
: [--delete=yes] : tous les fichiers du serveur distant, qui ne sont pas dans la sauvegarde, sont supprimés.
 +
 
 +
{{Warning box|type=Attention : une restauration complète avec --préserve-newer no et --delete=yes, reconstruit le serveur tel qu'il était au moment de la sauvegarde. Cela signifie que tous les fichiers créés ou les modifications de configuration du serveur effectuées avant la restauration seront perdues !|}}
 +
 
 +
Après la restauration, le nouveau serveur de production redémarrera.
  
=== Additional information ===
+
'''Remarque pour le cas de 3 machines :''' assurez-vous que l'ancien matériel soit éteint ou déconnecté du réseau avant le redémarrage du nouveau matériel car le nouveau matériel prend son adresse IP après la reconfiguration.
==== Performance ====
 
With this method you should be able to move a typical 500 Gbyte sized server to new hardware with downtime less than 20 minutes. The final sync and the rise time does not really depend on the total files size, but on the number of files and directories.
 
  
 +
==== Tâches après la restauration ====
 +
* Si la tâche de sauvegarde doit être utilisée pour les sauvegardes futures du nouveau matériel, n'oubliez pas de remplacer l'adresse IP temporaire de «Remotehost» par l'adresse IP précédemment configurée de l'ancien serveur dans le fichier de configuration de la tâche affa.
 +
* Dans le cas d'une mise à jour du système d'exploitation, vérifiez et, si nécessaire, reconfigurez les dépôts de yum pour la nouvelle version.
  
[[Category: Howto]]
+
[[Category: Howto/fr]]
[[Category: Backup]]
+
[[Category: Backup/fr]]
 
----
 
----

Latest revision as of 20:29, 4 October 2024


PythonIcon.png Skill level: Advanced
The instructions on this page may require deviations from standard procedures. A good understanding of linux and Koozali SME Server is recommended.


Est-ce que cet article vous a été utile ?
Svp, envisagez de faire un don ou du volontariat.
Merci !

Warning.png Attention :
1er septembre 2022. Un correctif récent apporté à rsync dans rsync-3.1.2-11.el7_9.x86_64 provoque l'échec silencieux d'Affa. Vous devrez rétrograder vers une version antérieure pour utiliser Affa v3. Affa 4 propose des correctifs pour ce problème.


Déplacer un serveur SME sur une nouvelle machine

Introduction

Il y a plusieurs façons de déplacer une installation du Serveur SME sur un nouveau matériel et également sur une nouvelle version logicielle du Serveur SME.

Ce document décrit une méthode utilisant la contribution smeserver-affa v3.

Warning.png Attention :
il faut utiliser la contribution smeserver-affa et non Affa ; le développeur d'Affa a abandonné SME pour la version 3 qui ne fonctionne que pour CentOS ; les mainteneurs de smeserver-affa ont implémenté dans smeserver-affa v3 les fonctions nécessaires pour le Serveur SME. Dans la suite de ce document, lorsqu'on parle d'Affa, il s'agit de la contribution smeserver-affa.


Affa donne 3 possibilités pour changer de matériel, qui dépendent du matériel disponible (1, 2 ou 3 serveurs, un disque USB) et de la durée acceptable d’interruption du service :

  • En utilisant la fonction «rise», le serveur de sauvegarde sera converti en nouveau serveur de production => 2 machines sont nécessaires - la durée de l'interruption est courte.
  • En utilisant les fonctions de sauvegarde normale et de restauration :
  • avec 2 machines (serveur de production et serveur de sauvegarde - durée d'interruption longue) ou 3 machines (ancien serveur de production, serveur de sauvegarde et nouveau serveur de production - interruption courte) ;
  • avec seulement 1 machine et un disque USB externe (interruption longue).

Ces 3 méthodes peuvent également être utilisées pour passer à une version logicielle supérieure. Cela est aussi valable pour passer de la version SME 8.2 à la version 9.x.

Affa rend cela possible avec une interruption de service minimale du serveur de production.

Dans la suite, il est convenu que IP_prod est l'adresse IP de votre serveur de production et IP_nouvelle est l’adresse IP du nouveau matériel serveur. Remplacer les espaces réservés par vos adresses IP réelles.

En utilisant la fonction « rise »

Préparation

Warning.png Attention :
avant d'envisager le passage de SME 8 à SME 9 qui va bientôt devenir urgent (31 mars 2017), penser à vérifier l'état de boguage de chacune des contributions utilisées par le serveur SME. En effet, certaines contributions en version SME 9 ont des bogues qui n'existent pas en version SME 8 et qui peuvent, au mieux, engendrer des messages d'erreurs au redémarrage. Ces messages peuvent faire croire à un bogue de la fonction «rise» d'Affa. A ce jour (10 août 2016), il n'en est rien.


Serveur de production

Activer l'accès ssh à distance pour l'administrateur dans le gestionnaire du serveur de l'IP_prod. Cela inclut de configurer à la fois :

  • l'accès Secure shell à partir du réseau local ;
  • autoriser l'administrateur à accéder à SSH en ligne de commande en configurant à « Oui » ;
  • et « Autoriser l'administrateur à se connecter à l'aide de mots de passe standards » à « Oui ».


Se connecter en tant qu'administrateur au serveur d'IP_prod et lancer une mise à jour logicielle :

yum update

Si des paquets sont mis à jour, il est nécessaire de lancer les commandes post mises à jour et de redémarrer :

signal-event post-upgrade; signal-event reboot
Nouveau matériel

Installer le Serveur SME à partir du dernier CDROM/ISO. Lui attribuer une adresse IP inutilisée (IP_nouvelle) et désactiver la fonction DHCP.
Activer l'accès ssh à distance dans le gestionnaire du serveur de la machine d'IP_nouvelle.


Important.png Note :
à partir de maintenant, toutes les étapes suivantes peuvent être réalisées à distance par accès ssh.



Se connecter au serveur d'IP_nouvelle et lancer une mise à jour.

yum update

Effectuer les procédure post mises à jour et redémarrer si c'est demandé.

Installer la contribution Affa. Suivez les dernières instructions d'installation d'Affa ici.

Se souvenir, s.v.p., de créer en ligne de commande le répertoire pour les fichiers d'archives :

mkdir /var/affa


Important.png Note :
durant la transition entre SME8 et SME9, les paquets des contributions seront déplacés dans le dépôt des contributions de SME9. Si la contribution n'est pas encore dans le dépôt des contributions de SME9 et une entrée dans les questions/réponses suggère que ce sera installé proprement, il faudra installer la contribution à partir du dépôt de SME8. Voir : http://wiki.contribs.org/SME9.0_Contribs_QA#Setup.


Dans cet exemple, vous avez un Serveur SME de production (IP_prod) d'IP : 192.168.0.2.
Vous avez une seconde machine SME en tant que serveur de sauvegarde (IP_nouvelle) d'IP : 192.168.0.10.
La tâche Affa de sauvegarde s'appelle «ServProd».

Connectez-vous à votre IP_nouvelle en tant que root et éditer/créer le fichier /etc/affa/ServProd.conf. En utilisant, par exemple, l'éditeur nano, ajouter le texte de configuration de tâche de l'exemple suivant au nom de tâche ServProd et adapter Include=XXXXX selon les répertoires supplémentaires qui doivent être sauvegardés, par ex., du fait des contributions installées qui fonctionnent dans /opt) :

[ServProd]
remoteHostName=192.168.0.2
SMEServer=yes
Watchdog=yes
RPMCheck=yes
ConnectionCheckTimeout=120
Debug=no
Description=sauvegarde de smeserveur.chezmoi.xx d'IP 192.168.0.2
DiskSpaceWarn=strict
RootDir=/var/affa
Include=/chaque/répertoire/à/sauvegarder
Include=/autre/répertoire/à/sauvegarder
TimeSchedule=0630
localNice=15
remoteNice=15
rsync--inplace=yes
rsyncCompress=no
rsyncTimeout=900
scheduledKeep=1
dailyKeep=7
weeklyKeep=4
monthlyKeep=12
yearlyKeep=1
status=disabled

Puis sauvegarder votre fichier de configuration de tâche.

Si vous avez un certificat Letsencrypt sur le serveur de production, alors vous devriez l'inclure aussi :

Include=/etc/dehydrated

Maintenant, vérifier que votre configuration est correcte :

affa --configcheck

Cela ne devrait retourner aucune erreur.

Générer des clés DSA et envoyer la clé publique au serveur d'IP_prod.

affa --send-key ServProd

La réponse du serveur d'IP_prod doit être :

Job ServProd: root@IP_prod's password:

Entrer le mot de passe administrateur d'IP_prod. La réponse sera :

Public key sent to IP_prod
Warning.png Attention :
avant d'envoyer la clé publique, il faut impérativement modifier provisoirement le serveur d'IP_prod en mettant à «Oui» l'accès ssh à distance à l'aide de mots de passe standards.

Ne pas oublier de remettre cette possibilité à «Non» dès la réponse du serveur après l'entrée du mot de passe.


Important.png Note :
si vous ne vous êtes jamais connecté à IP_prod depuis IP_nouvelle, le serveur va vous demander si vous êtes sûr de l’authenticité du serveur qui répond en vous présentant sa clé RSA qu'il faut alors accepter par «yes».


Copie des données

Exécuter la tâche Affa «ServProd» sur la machine d'IP_nouvelle.

affa --run prodserv

En fonction de la quantité de données et des performances du matériel et du réseau, cette première tâche peut être réellement longue.

Regarder maintenant le fichier /var/affa/ServProd/rpms-missing.txt.

less /var/affa/ServProd/rpms-missing.txt

Vous trouverez une liste de paquets qui sont installés sur le serveur d'IP_prod mais non sur ce serveur d'IP_nouvelle et aussi des paquets installés dans différentes versions. Installer ou mettre à jour les paquets listés. Pour vérifier, vous pouvez exécuter à nouveau les étapes de ce chapitre. A la fin, le fichier rpms-missing.txt ne devrait plus avoir aucun paquet.

Dans le cas où vous changez le système d'exploitation SME pour une version plus élevée, vous allez trouver dans cette liste, non seulement les contributions installées mais toutes les différences entre les 2 systèmes - dans ce cas, vous devez exécuter cette commande sur l'IP_prod

 /sbin/e-smith/audittools/newrpms

pour révéler quelles sont les contributions installées sur l'IP_prod.

Synchronisation finale des données

Demander à vos utilisateurs de se déconnecter.
Se connecter à la machine d'IP_prod et arrêter tous les services qui peuvent modifier des données :

Pour SME9

SVC='qpsmtpd sqpsmtpd crond pop3 dovecot pop3s ftp httpd-e-smith smb qmail' 
for s in $SVC; do service $s stop; done

Pour SME8 et SME7

SVC='qpsmtpd sqpsmtpd crond pop3 imap imaps pop3s ftp httpd-e-smith atalk smb qmail' 
for s in $SVC; do service $s stop; done

Note : l'interruption de service du serveur de production commence ici.

Se connecter à la machine d'IP_nouvelle et lancer à nouveau la tâche Affa :

affa --run prodserv

Cette passe s'effectue très rapidement car seules les différences depuis la dernière exécution ont besoin d'être synchronisées.

Basculement sur le nouveau matériel

Se connecter à la machine d'IP_prod et l'arrêter :

poweroff


Se connecter à la machine d'IP_nouvelle et «élever» ce serveur comme votre serveur de production :

affa --rise --all prodserv

Cette action s'exécutera très rapidement car seuls des liens durs sont utilisés et aucune donnée n'est déplacée physiquement.

Note: ne pas s'effrayer si votre invite de commande a une apparence différente !

Effectuer maintenant un redémarrage :

reboot

Note : l'interruption de service du serveur de production se termine ici.

Vous avez maintenant une copie conforme de votre ancien serveur de production en fonctionnement sur le nouveau matériel. Vos utilisateurs peuvent maintenant se connecter.

Nettoyage

Effacer les archives Affa :

/bin/rm -rf /var/affa

Supprimer les paquets Affa et toutes les données d'état et de configuration :

yum remove smeserver-affa perl-Filesys-DiskFree
rm -f /etc/cron.d/affa-status /etc/cron.d/affa
rm -rf /home/e-smith/db/affa /home/e-smith/db/affa-report
rm -rf /var/log/affa 

Note : ne pas oublier de nettoyer /var/affa. Sinon vous perdrez de l'espace disque et vous verrez d'étranges rapports de quota. Voir ce fil de discussion pour plus de détails.

Information additionnelle

Performance

Avec cette méthode, vous devriez être en mesure de déplacer un serveur d'une taille typique de 500 Gb sur un nouveau matériel avec une interruption de service de moins de 20 minutes. La durée de la synchronisation finale et de l'«élévation» ne dépendent pas tant de la taille totale des fichiers que du nombre de fichiers et de répertoires.

En utilisant les fonctions de sauvegarde et de restauration

La manière générale de travailler est de faire une sauvegarde de l'ancien serveur Koozali et de la restaurer sur le nouveau serveur Koozali (mise à jour ou non). La fonction «RPMCheck» peut être utilisée indirectement avec le serveur de sauvegarde (compare la liste entre l'ancien et le nouveau matériel) pour obtenir la liste des paquets rpm manquants sur le nouveau matériel mais elle n'est pas disponible pour une sauvegarde sur le disque USB externe.

Préparation

Prenez une sauvegarde de l'ancien serveur de 'production' en service (voir le fichier de configuration /etc/affa/ServProd.conf ci-dessus).

Important.png Note : en utilisant la méthode fondée sur «rise», vous pouvez exécuter la première sauvegarde (qui prend beaucoup de temps) sans arrêter les services et la dernière (rapide) après la déconnexion des utilisateurs et l'arrêt des services.


Après la sauvegarde, définissez une IP temporaire dans le fichier de configuration de la tâche de sauvegarde :

RemoteHostName = tem.po.ra.ry.IP

Pour une sauvegarde sur un disque USB externe, définissez :

RemoteHostName=localhost
RootDir=/le/point/de/montage/du/disque

Et montez le disque. Vous devriez également faire une liste des rpm (paquets) installés.

Installer SME sur le nouveau matériel

Installez au moins la même version de SME que celle utilisée sur l'ancien matériel ou une plus récente (par exemple, passage de SME8 à SME9).

Pour la méthode fondée sur un serveur de sauvegarde :
  • définir l' adresse IP temporaire comme adresse interne du nouveau matériel ;
  • à partir du serveur de sauvegarde, créez la connexion ssh entre le serveur de sauvegarde et le nouveau matériel en envoyant la clé ssh :
  affa --send-key ServProd


Warning.png Attention : avant d'envoyer la clé publique, il faut impérativement modifier provisoirement le serveur d'IP_prod en mettant l'accès ssh à distance à «Oui» à l'aide de mots de passe standards.

Ne pas oublier de remettre cette possibilité à «Non» dès la réponse du serveur après l'entrée du mot de passe.


Important.png Note : si vous ne vous êtes jamais connecté(e) à IP_prod depuis IP_nouvelle, le serveur va vous demander si vous êtes sûr(e) de l’authenticité du serveur qui répond en vous présentant sa clé RSA qu'il faut alors accepter par «yes».


La réponse du serveur Prod-temp-IP sera

 Job prodserv: root @ Prod-temp-IP's password:

Entrez le mot de passe root de Prod-temp-IP. La réponse sera :

 Public key sent to prod-temp-IP
Disque USB externe :
  • installez «smeserver-affa» sur le nouveau matériel ;
  • montez le disque USB sur le même point de montage que pour la sauvegarde ;
  • allez dans l'archive scheduled.0 et copiez le fichier .ini dans /etc/affa comme fichier de configuration :
cd /point-de-montage/ServProd/scheduled.0
ls -a ### pour voir le fichier ini
cp .ServProd.ini /etc/affa/
mv /etc/affa/.ServProd.ini /etc/affa/ServProd.conf
En cas de mise à niveau de SME8 vers SME9

La restauration des données par défaut (paramètre «SMEServer=yes» dans le fichier de configuration de la tâche) configurera les dépôts de yum pour SME8 sur le nouveau serveur SME9 !

Pour éviter cela, il existe 2 possibilités :

  • faire une copie des deux répertoires /etc/yum.repos.d et /etc/yum.smerepos.d 'avant la restauration. Ce sera utile pour reconfigurer à la main les dépôts pour SME9 après la restauration.
  • ajouter dans le fichier de configuration de la tâche de sauvegarde :
Exclude=/etc/yum.repos.d
Exclude=/etc/yum.smerepos.d

avant la dernière sauvegarde (bien sûr, si vous restaurerez à partir de la dernière sauvegarde - scheduled.0 - et pas d'une plus ancienne comme weekly.2 !)

Restaurer les données

À partir du serveur de sauvegarde (ou du nouveau serveur de production, en cas de restauration à partir d'un disque USB externe), exécutez :

 affa --full-restore [--preserve-new=no] [--delete=yes] ServProd

pour obtenir une copie conforme de la sauvegarde.

Garder en tête que :

[--preserve-new=no] : les fichiers du serveur distant avec une heure de modification plus récente que sur la sauvegarde sont écrasés par ceux plus anciens de la sauvegarde ;
[--delete=yes] : tous les fichiers du serveur distant, qui ne sont pas dans la sauvegarde, sont supprimés.


Warning.png Attention : une restauration complète avec --préserve-newer no et --delete=yes, reconstruit le serveur tel qu'il était au moment de la sauvegarde. Cela signifie que tous les fichiers créés ou les modifications de configuration du serveur effectuées avant la restauration seront perdues !


Après la restauration, le nouveau serveur de production redémarrera.

Remarque pour le cas de 3 machines : assurez-vous que l'ancien matériel soit éteint ou déconnecté du réseau avant le redémarrage du nouveau matériel car le nouveau matériel prend son adresse IP après la reconfiguration.

Tâches après la restauration

  • Si la tâche de sauvegarde doit être utilisée pour les sauvegardes futures du nouveau matériel, n'oubliez pas de remplacer l'adresse IP temporaire de «Remotehost» par l'adresse IP précédemment configurée de l'ancien serveur dans le fichier de configuration de la tâche affa.
  • Dans le cas d'une mise à jour du système d'exploitation, vérifiez et, si nécessaire, reconfigurez les dépôts de yum pour la nouvelle version.