Zum Hauptinhalt gehen

Die Verteilung ändern

Diese Dokumentation beschreibt, wie Sie die Distribution, auf der BlueMind läuft, ändern können. Sie kann verwendet werden, um die Distribution zu aktualisieren (z.B. von Ubuntu 20.04 auf Ubuntu 22.04).

Dieses Verfahren basiert auf der Installation eines Zielsystems, auf das die Daten migriert werden. Dieses neue System wird dann auf der Netzwerkebene an die Stelle des ersten Systems treten.

Voraussetzungen

Installation und Konfiguration von BlueMind

  • Installieren Sie auf dem Zielsystem ein BlueMind in der gleichen Version wie das ursprüngliche System: Wenn das ursprüngliche System BlueMind 5.0.x verwendet, muss das Zielsystem ein BlueMind 5.0.x haben.

    ⚠️ Datenbankpasswort
    Das Datenbankpasswort wird bei der Installation von BlueMind automatisch generiert und in die Datei /etc/bm/bm.ini eingetragen. Diese Datei wird bei der Datensynchronisation überschrieben ⇒ Kopieren Sie das Datenbankpasswort und sichern Sie es, bevor Sie mit der Migration beginnen.

  • Spielen Sie den Installationsassistent (oder Stupassistent) auf dem Zielserver ab.
  • Auf dem Zielserver alle Plugins installieren, die Auf dem Quellserver verwendet werden (LDAP-Import, Unternehmenssignaturen...)
  • Konfigurieren Sie die externe URL des Zielservers: Wenn die ursprüngliche externe URL bluemind.domain.tld ist, muss der BlueMind des Zielsystems mit bluemind.domain.tld konfiguriert werden.
  • Starten Sie die Umsetzung der Subskription, die für dieses OS gültig sein muss. NB: In diesem Fall ist es möglich, das gleiche Abonnement wieder zu verwenden, wobei der neue Server den alten ersetzt..
  • Der Benutzer root auf dem Zielserver muss sich als root auf dem Ursprungsserver authentifizieren können, idealerweise mit Schlüsselauthentifizierung.
  • Das Dienstprogramm rsync muss auf beiden Systemen installiert sein.

System

  • Das Dienstprogramm rsync muss auf beiden Systemen installiert sein.
  • Beenden Sie ggf. die folgenden Dienste:
    • firewalld
    • PostgreSQL

RedHat

Für Red Hat Server :

  • fügen Sie die für die Version geeigneten rpms hinzu
    Beispiel für Version 8 :
    dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
  • Getenforce deaktivieren :
    sed -i s/=enforcing/=disabled/ /etc/selinux/config

Datenmigration

Die Datenmigration erfolgt in drei Schritten, um die Ausfallzeit des Dienstes zu minimieren :

  1. Hot-Sync der Daten vom Quell- zum Zielserver - zeitaufwendig, aber keine Unterbrechung des Dienstes.
  2. Kalte Synchronisation - schneller Vorgang, der jedoch zu einer Unterbrechung des Dienstes führt.
  3. Server ersetzen

Heiße Synchronisation

Diese Synchronisation ermöglicht es, die anfängliche Kopie der Daten ohne Unterbrechung des Dienstes zu erstellen.

Um dies zu tun :

  1. Sich als root auf dem Zielserver anmelden: su -.
  2. Stoppen Sie die Dienstleistungen auf diesem:
bmctl stop
systemctl stop postfix.service
  1. Synchronisieren Sie die Daten von BlueMind mit dem Dienstprogramm rsync:
rsync -avH --delete root@origsrv.domain.tld:/var/spool/bm-hsm/ /var/spool/bm-hsm/
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/
rsync -avH --delete root@origsrv.domain.tld:/var/spool/cyrus/ /var/spool/cyrus/

Diese Operationen können unterbrochen und/oder mehrmals durchgeführt werden.

Synchronisationsfrequenz

Um die Ausfallzeit bei der kalten Synchronisierung zu minimieren, wird empfohlen, die heiße Synchronisierung so oft wie möglich durchzuführen. Dies ermöglicht es, die Menge der Daten, die zwischen den beiden Rechnern übertragen werden müssen, zu begrenzen.

Je kürzer die Zeit zwischen der heißen und der kalten Synchronisation ist, desto schneller ist die kalte Synchronisation.

Kalte Synchronisation

  1. Stoppen Sie die Dienste auf dem ursprünglichen und dem Zielserver:
bmctl stop
systemctl stop postfix.service
  1. 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/spool/bm-hsm/ /var/spool/bm-hsm/
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/
  1. Depuis le serveur cible, réaliser un démarrage de PostgreSQL du serveur d'origine :
ssh root@origsrv.domain.tld "systemctl start postgresql.service"
  1. 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 --format=c --username=bj --host localhost bj" > /tmp/dump-bj.sql
ssh root@origsrv.domain.tld "PGPASSWORD=bj pg_dump --format=c --username=bj --host localhost bj-data" > /tmp/dump-bj-data.sql
ssh root@origsrv.domain.tld "PGPASSWORD=bj pg_dump --format=c --username=bj --host localhost keycloak" > /tmp/dump-keycloak.sql
  1. Depuis le serveur cible, copier les fichiers du serveur d'origine :
rsync -av -r root@origsrv.domain.tld:/etc/bm/\* /etc/bm
rsync -av root@origsrv.domain.tld:/etc/nginx/sw.htpasswd /etc/nginx/sw.htpasswd
rsync -av root@origsrv.domain.tld:/etc/ssl/certs/bm_cert*.pem /etc/ssl/certs
rsync -av -r root@origsrv.domain.tld:/var/lib/bm-ca/\* /var/lib/bm-ca
rsync -av root@origsrv.domain.tld:/usr/share/bm-elasticsearch/config/elasticsearch.yml /usr/share/bm-elasticsearch/config/elasticsearch.yml
rsync -av root@origsrv.domain.tld:/etc/postfix/main.cf /etc/postfix/main.cf
rsync -av root@origsrv.domain.tld:/etc/postfix/master.cf /etc/postfix/master.cf
rsync -av root@origsrv.domain.tld:/etc/postfix/master_relay_transport-flat /etc/postfix/master_relay_transport-flat
rsync -av root@origsrv.domain.tld:/etc/postfix/master_relay_transport.db /etc/postfix/master_relay_transport.db
rsync -av root@origsrv.domain.tld:/etc/postfix/transport-flat /etc/postfix/transport-flat
rsync -av root@origsrv.domain.tld:/etc/postfix/transport.db /etc/postfix/transport.db
rsync -av root@origsrv.domain.tld:/etc/postfix/virtual_alias-flat /etc/postfix/virtual_alias-flat
rsync -av root@origsrv.domain.tld:/etc/postfix/virtual_alias.db /etc/postfix/virtual_alias.db
rsync -av root@origsrv.domain.tld:/etc/postfix/virtual_domains-flat /etc/postfix/virtual_domains-flat
rsync -av root@origsrv.domain.tld:/etc/postfix/virtual_domains.db /etc/postfix/virtual_domains.db
rsync -av root@origsrv.domain.tld:/etc/postfix/virtual_mailbox-flat /etc/postfix/virtual_mailbox-flat
rsync -av root@origsrv.domain.tld:/etc/postfix/virtual_mailbox.db /etc/postfix/virtual_mailbox.db
  1. Depuis le serveur cible, réaliser un démarrage de PostgreSQL :
systemctl start postgresql.service
  1. Mounten Sie die Datenbank auf dem Zielserver erneut:
chown postgres:postgres /tmp/dump*
su - postgres
dropdb bj
dropdb bj-data
dropdb keycloak
createdb bj
createdb bj-data
createdb keycloak
pg_restore -d bj /tmp/dump-bj.sql
pg_restore -d bj-data /tmp/dump-bj-data.sql
pg_restore -d keycloak /tmp/dump-keycloak.sql
exit

💡 Datenbankpasswort
Falls das Datenbankpasswort nicht gespeichert wurde (siehe Voraussetzung) oder aus anderen Gründen, können Sie in diesem Schritt das Datenbankpasswort des Zielservers aktualisieren, so dass es mit dem des Quellservers identisch ist:

su - postgres
psql -d bj
ALTER ROLE bj WITH PASSWORD '<mot_de_passe>';
\q
exit

Starten Sie dann BlueMind neu:

bmctl restart
  1. Starten Sie die automatische Neukonfiguration von Keycloak auf dem Zielserver:
bm-cli auth reconfigure

Serveraustausch

  1. Stoppen Sie den ursprünglichen Server
  2. Konfigurieren Sie die Datei bm.ini des Zielservers neu, um ihr die IP-Adresse des ursprünglichen Servers zuzuweisen (siehe Ändern der IP-Adresse eines BlueMind Servers).
  3. Starten Sie den Zielserver neu und verbinden Sie ihn anstelle des ursprünglichen Servers mit dem Netzwerk, so dass er anstelle des ursprünglichen Servers erreichbar ist.

Neukonfigurierung des Systems

Manuell

  1. Firewall neu konfigurieren :
    sed -i "s/${old_ip}/${new_ip}/g" /etc/init.d/bm-iptables
    systemctl restart bm-iptables.service
  2. Postfix neu konfigurieren :
    sed -i "s/${old_ip}/${new_ip}/g" /etc/postfix/main.cf /etc/postfix/transport-flat
    postmap /etc/postfix/transport-flat
    mv /etc/postfix/transport-flat.db /etc/postfix/transport.db
  3. Starten Sie die Neukonfiguration des Supervisor-Tools bm-tick:
    kapacitor list tasks |  awk '{print $1}' | grep -v ID | xargs -I {} kapacitor delete tasks {}
    bm-cli tick reconfigure

Über die AdminConsole

Melden Sie sich an der BlueMind Verwaltungskonsole als Benutzer admin0@global.virt an, dann :

  1. Gehen Sie zu Sicherheit > Firewall-Management und klicken Sie sofort auf die Schaltfläche "Speichern", um die Erneuerung der BlueMind Firewall-Regeln zu erzwingen.
  2. Gehen Sie zu Systemverwaltung > Mailwartung und klicken Sie auf die Schaltfläche "Ausführen", um die Postfix Mailrouting-Tabellen neu zu generieren.
  3. Gehen Sie zu Systemverwaltung > Systemkonfiguration und ersetzen Sie die alte IP-Adresse im Feld "Meine Netzwerke" durch die neue Adresse oder den Adressbereich, für den Sie geöffnet werden möchten, und klicken Sie auf die Schaltfläche "Speichern".
  4. Starten Sie die Neukonfiguration des Supervisor-Tools bm-tick:
    kapacitor list tasks |  awk '{print $1}' | grep -v ID | xargs -I {} kapacitor delete tasks {}
    bm-cli tick reconfigure

Für weitere Informationen

Lesen Sie die BlueMind-Dokumentation in Verbindung mit