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 installation wizard (oder setup wizard) 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 mitbluemind.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 alsroot
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 :
- Hot-Sync der Daten vom Quell- zum Zielserver - zeitaufwendig, aber keine Unterbrechung des Dienstes.
- Kalte Synchronisation - schneller Vorgang, der jedoch zu einer Unterbrechung des Dienstes führt.
- 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 :
- Sich als
root
auf dem Zielserver anmelden:su -
. - Stoppen Sie die Dienstleistungen auf diesem:
bmctl stop
systemctl stop postfix.service
- 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.
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
- Stoppen Sie die Dienste auf dem ursprünglichen und dem Zielserver:
bmctl stop
systemctl stop postfix.service
- Führen Sie vom Zielserver aus eine erneute Datensynchronisation durch:
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/
- Führen Sie vom Zielserver aus einen Start von PostgreSQL auf dem ursprünglichen Server durch:
ssh root@origsrv.domain.tld "systemctl start postgresql.service"
- Führen Sie vom Zielserver aus einen Dump der Datenbank des ursprünglichen Servers durch:
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
- Kopieren Sie vom Zielserver aus die Dateien des ursprünglichen Servers:
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
- Starten Sie PostgreSQL vom Zielserver aus:
systemctl start postgresql.service
- 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
exitStarten Sie dann BlueMind neu:
bmctl restart
- Starten Sie die automatische Neukonfiguration von Keycloak auf dem Zielserver:
bm-cli auth reconfigure
Serveraustausch
- Stoppen Sie den ursprünglichen Server
- 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). - 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
- Firewall neu konfigurieren :
sed -i "s/${old_ip}/${new_ip}/g" /etc/init.d/bm-iptables
systemctl restart bm-iptables.service - 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 - 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 :
- Gehen Sie zu Sicherheit > Firewall-Management und klicken Sie sofort auf die Schaltfläche "Speichern", um die Erneuerung der BlueMind Firewall-Regeln zu erzwingen.
- Gehen Sie zu Systemverwaltung > Mailwartung und klicken Sie auf die Schaltfläche "Ausführen", um die Postfix Mailrouting-Tabellen neu zu generieren.
- 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".
- 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