Cette documentation décrit la façon de changer la distribution sur laquelle fonctionne BlueMind. Elle peut-être utilisée pour mettre à jour la distribution (Ubuntu 14.04 vers Ubuntu 16.04 par exemple).
Cette procédure est basée sur l'installation d'un système cible sur lequel les données seront migrées. Ce nouveau système prendra ensuite la place, au niveau réseau, du premier.
Pré-requis
- installer sur le système cible un BlueMind en version identique au système d'origine et configuré avec la même external-url. L'installation wizard (ou le setup wizard) doit avoir été joué sur le serveur cible. Par exemple:
- si le système d'origine utilise BlueMind 3.5.12-7, le système cible doit avoir un BlueMind 3.5.12-7
- si l'external-url d'origine est bluemind.domain.tld, le BlueMind du système cible doit être configuré avec l'external-url bluemind.domain.tld
- installer une souscription valide pour cet OS
- l'utilisateur root du serveur cible doit pouvoir s'authentifier en tant que root sur le serveur d'origine, idéalement en authentification par clé
- l'utilitaire rsync doit-être installé sur les 2 systèmes
Migration
La migration des données se passe en 3 temps afin de minimiser l'indisponibilité du service:
- synchronisation à chaud des données du serveur source vers le serveur cible - opération longue mais ne provoquant pas de coupure de service
- synchronisation à froid - opération rapide mais provoquant une coupure de service
- remplacement des serveurs
Synchronisation à chaud
Permet de faire la copie initiale des données sans coupure du service:
- se connecter en tant que root sur le serveur cible
stopper les services sur les serveurs cible:
# bmctl stop # service postfix stop
synchroniser les données de BlueMind via l'utilitaire rsync:
# rsync -avH --delete root@origsrv.domain.tld:/var/spool/cyrus/ /var/spool/cyrus/ # rsync -avH --delete root@origsrv.domain.tld:/var/lib/cyrus/ /var/lib/cyrus/ # rsync -avH --delete root@origsrv.domain.tld:/var/spool/bm-hsm/ /var/spool/bm-hsm/ # rsync -avH --delete root@origsrv.domain.tld:/var/spool/sieve/ /var/spool/sieve/ # rsync -avH --delete root@origsrv.domain.tld:/var/spool/bm-elasticsearch/ /var/spool/bm-elasticsearch/ # rsync -avH --delete root@origsrv.domain.tld:/var/spool/bm-docs/ /var/spool/bm-docs/ # rsync -avH --delete root@origsrv.domain.tld:/var/spool/bm-filehosting/ /var/spool/bm-filehosting/
Ces opérations peuvent-être interrompues et/ou réalisées plusieurs fois.
Note: Plus le temps entre la synchronisation à chaud et la synchronisation à froid est court, plus la synchronisation à froid sera rapide.
Synchronisation à froid
stopper les services sur les serveurs (origine et cible):
# bmctl stop # service postfix stop
depuis le serveur cible, refaire une synchronisation des données:
# rsync -avH --delete root@origsrv.domain.tld:/var/spool/cyrus/ /var/spool/cyrus/ # rsync -avH --delete root@origsrv.domain.tld:/var/lib/cyrus/ /var/lib/cyrus/ # rsync -avH --delete root@origsrv.domain.tld:/var/spool/bm-hsm/ /var/spool/bm-hsm/ # rsync -avH --delete root@origsrv.domain.tld:/var/spool/sieve/ /var/spool/sieve/ # rsync -avH --delete root@origsrv.domain.tld:/var/spool/bm-elasticsearch/ /var/spool/bm-elasticsearch/ # rsync -avH --delete root@origsrv.domain.tld:/var/spool/bm-docs/ /var/spool/bm-docs/ # rsync -avH --delete root@origsrv.domain.tld:/var/spool/bm-filehosting/ /var/spool/bm-filehosting/
depuis le serveur cible, réaliser un dump de la base de données du serveur d'origine:
# ssh root@origsrv.domain.tld "PGPASSWORD=bj pg_dump -U bj -h localhost bj" > /tmp/db.sql
depuis le serveur cible, copier les fichiers du serveur origine vers le serveur cible:
# scp -r root@origsrv.domain.tld:/etc/bm/* /etc/bm # scp root@origsrv.domain.tld:/etc/bm/bm.ini /etc/bm/bm.ini # scp -r root@origsrv.domain.tld:/etc/bm-hps/* /etc/bm-hps # scp root@origsrv.domain.tld:/etc/ssl/certs/bm_cert.pem /etc/ssl/certs/bm_cert.pem # scp -r root@origsrv.domain.tld:/var/lib/bm-ca/* /var/lib/bm-ca # scp root@origsrv.domain.tld:/usr/share/bm-elasticsearch/config/elasticsearch.yml /usr/share/bm-elasticsearch/config/elasticsearch.yml # scp root@origsrv.domain.tld:/etc/imapd* /etc/ # scp root@origsrv.domain.tld:/etc/cyrus* /etc/ # scp root@origsrv.domain.tld:/etc/postfix/main.cf /etc/postfix/main.cf # scp root@origsrv.domain.tld:/etc/postfix/master.cf /etc/postfix/master.cf # scp root@origsrv.domain.tld:/etc/postfix/master_relay_transport-flat /etc/postfix/master_relay_transport-flat # scp root@origsrv.domain.tld:/etc/postfix/master_relay_transport.db /etc/postfix/master_relay_transport.db # scp root@origsrv.domain.tld:/etc/postfix/transport-flat /etc/postfix/transport-flat # scp root@origsrv.domain.tld:/etc/postfix/transport.db /etc/postfix/transport.db # scp root@origsrv.domain.tld:/etc/postfix/virtual_alias-flat /etc/postfix/virtual_alias-flat # scp root@origsrv.domain.tld:/etc/postfix/virtual_alias.db /etc/postfix/virtual_alias.db # scp root@origsrv.domain.tld:/etc/postfix/virtual_domains-flat /etc/postfix/virtual_domains-flat # scp root@origsrv.domain.tld:/etc/postfix/virtual_domains.db /etc/postfix/virtual_domains.db # scp root@origsrv.domain.tld:/etc/postfix/virtual_mailbox-flat /etc/postfix/virtual_mailbox-flat # scp root@origsrv.domain.tld:/etc/postfix/virtual_mailbox.db /etc/postfix/virtual_mailbox.db # scp root@origsrv.domain.tld:/etc/bm-webmail/* /etc/bm-webmail/
re-monter la base de données sur le serveur cible:
# su - postgres $ dropdb bj $ createdb bj $ exit # export PGPASSWORD=bj # cat /tmp/db.sql | psql -U bj -h localhost bj
Remplacement des serveurs
- stopper le serveur d'origine
- re-configurer le serveur cible pour lui attribuer l'adresse IP du serveur d'origine
- re-démarrer le serveur cible et le connecter au réseau à la place du serveur d'origine afin qu'il soit joignable à la place du serveur origine
Post-migration
Se connecter à la console d'administration de BlueMind en tant qu'utilisateur admin0@global.virt puis:
- Se rendre dans la partie Sécurité > Gestion du pare-feu et cliquer immédiatement sur le bouton "Enregistrer" pour forcer la re-génération des règles du parefeu BlueMind
- Se rendre dans la partie Gestion du Système > Maintenance des mails, cliquer sur le bouton "Exécuter" pour re-générer les tables de routage de mails postfix
- Se rendre dans la partie Gestion du Système > Configuration Système et remplacer l'ancienne adresse IP du champ "Mes réseaux" par la nouvelle adresse ou plage d'adresse pour laquelle on souhaite être relais ouvert avant de cliquer sur le bouton "Enregistrer"
2 commentaires
Alban Rodriguez dit :
Question: il y a quoi dans /var/spool/bm-docs/ ?
Alban Rodriguez dit :
Important: lors de la migration de la config postfix sur un noeud edge, il faut penser à copier le fichier /etc/postfix/sasl/smtpd.conf sinon l'authentification SASL ne fonctionne pas car postfix ne communique pas avec le service bm-ysnp