Zum Inhalt

Versionsupgrade des Mediation Controller im laufenden Betrieb

Wichtig

Die Dokumentation zum Versionsupgrade des Mediation Controller im laufenden Betrieb richtet sich an jeden Mediation Controller, der mit Debian 11 läuft. Die Debian-Version kann mit dem folgenden Befehl geprüft werden (per SSH oder Konsolenzugriff auszuführen):

1
cat /etc/debian_version

Hinweis

Zur Erinnerung: Der Wechsel zu root muss auf Debian-Maschinen mit dem folgenden Befehl erfolgen:

1
su -

Planung und Vorbereitung

Öffnen der Netzwerkflüsse

Bei der Aktualisierung des Produkts müssen wegen des Übergangs von Debian 11 auf Debian 12 zahlreiche Pakete aus den Debian-Repositorys heruntergeladen werden. Der Zugriff über TCP 80 auf security.debian.org und ftp.fr.debian.org muss geöffnet sein.

Um die Öffnung der Netzwerkflüsse auf der Maschine zu testen, kann eine Synchronisierung der Debian-Repositorys gestartet werden. Werden Fehlermeldungen zum Zugriff auf die Debian-Repositorys angezeigt, ist der Netzwerkfluss nicht geöffnet, wahrscheinlich blockiert durch die Firewall des Unternehmens. Die Synchronisierung der Repositorys lässt sich mit dem folgenden Befehl starten:

1
apt update

Herunterladen des Spiegelservers und der erforderlichen Werkzeuge

Der Spiegelserver von CyberElements Cleanroom 4.6 kann unter diesem Link heruntergeladen werden (setzt die Erstellung eines Kundenkontos voraus): Systancia Marketplace

Neben dem Spiegelserver werden für die Aktualisierung Werkzeuge von Drittanbietern benötigt:

  • Ein SSH-Client (unter Windows kann das Werkzeug PuTTY verwendet werden)
  • Ein SCP-Client (unter Windows können die Werkzeuge WinSCP oder FileZilla verwendet werden)

Installation und Verwendung des Werkzeugs screen

Das Werkzeug screen ermöglicht es, mehrere Shell-Terminals in einer einzigen Konsole zu öffnen. Die Verwendung dieses Werkzeugs ist für das Upgrade auf die Version CyberElements Bastion unerlässlich, um die Abhängigkeit von der Stabilität der Netzwerkverbindung zu beseitigen. Ohne das Werkzeug screen würde die Installation nämlich bei einem Abbruch der SSH-Verbindung zu den CyberElements Bastion-Servern abgebrochen.

Durch die Verwendung des Werkzeugs screen kann bei einer erneuten Verbindung mit der Shell-Konsole der CyberElements Bastion-Geräte das Terminal wiederhergestellt werden, in dem der Aktualisierungsvorgang ausgeführt wurde.

Das Paket screen sollte mit der folgenden Befehlszeile installiert werden:

1
apt install --no-install-recommends screen

Um ein neues Terminal screen zu öffnen, muss der folgende Befehl ausgeführt werden:

1
screen -S <ID>

Ersetzen Sie <ID> durch einen Namen, der die Sitzung bezeichnet.

Beispiel

Bei Versionsaktualisierungen von CyberElements ist der Bezeichner cye-upgrade leicht wiederzuerkennen. Der Befehl lautet daher wie folgt:

1
screen -S cye-upgrade

Um ein mit screen geöffnetes Terminal wiederherzustellen, genügt es, den folgenden Befehl auszuführen:

1
screen -r <ID>

Ersetzen Sie <ID> durch den beim Öffnen der Sitzung festgelegten Namen.

Beispiel

Das zuvor mit dem Bezeichner cye-upgrade geöffnete Terminal lässt sich mit dem folgenden Befehl wiederherstellen:

1
screen -r cye-upgrade

Um das Terminal nach Abschluss der Aktualisierung zu schließen, geben Sie im Terminal den Befehl exit oder die Tastenkombination ctrl+d ein.

Sie gelangen damit zurück zur Konsole. Die Meldung „screen is terminating“ bestätigt, dass das Terminal geschlossen wurde.

Erweiterung des Festplattenplatzes der virtuellen Appliances

Bei den virtuellen Appliances Systancia Cleanroom 4.4 oder 4.5 muss der Partition /usr eine Festplattenerweiterung von 2 GB hinzugefügt werden. Dieser Vorgang ist erforderlich, um für das Versionsupgrade über ausreichend Festplattenplatz zu verfügen und ein Blockieren während des Vorgangs zu vermeiden.

Bei der Verbindung mit dem Mediation Controller, ob per SSH oder im Konsolenmodus, informiert Sie eine Willkommensmeldung darüber, dass Sie mit einer Systancia-Maschine verbunden sind. Eine zusätzliche Zeile gibt die Version der Appliance an.

Beispiel

Eine virtuelle Appliance Mediation Controller in Version 4.5 ergibt das folgende Ergebnis:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
            ____            _                   _
        / ___| _   _ ___| |_ __ _ _ __   ___(_) __ _
        \___ \| | | / __| __/ _  | '_ \ / __| |/ _  |
            ___) | |_| \__ \ || (_| | | | | (__| | (_| |
        |____/ \__, |___/\__\__,_|_| |_|\___|_|\__,_|
                |___/
#################################################################
# WARNING:                                                      #
# You must have specific authorization to access this machine.  #
# Unauthorized access to this machine is prohibited and will be #
# considered as intrusion.                                      #
# Unauthorized users will be logged, monitored, and could be    #
# prosecuted.                                                   #
#################################################################
Systancia Cleanroom 4.5.0 B77

Wenn die Maschine keine mit Version 4.4 oder 4.5 ausgelieferte virtuelle Appliance ist, kann dieses Kapitel übersprungen und direkt zum Versionsupgrade übergegangen werden.

Sicherung dringend empfohlen

Die folgenden Schritte ändern die Partitionierung der Festplatte des Mediation Controller. Wurden manuelle Änderungen vorgenommen, sind diese Anweisungen möglicherweise nicht geeignet und die Maschine kann blockiert werden.

Sichern Sie die Maschine, bevor Sie fortfahren, oder duplizieren Sie bei Bedarf die virtuelle Maschine. Snapshots können nicht verwendet werden, da sie insbesondere bei VMware die Erweiterung einer Festplatte verhindern.

Erweitern Sie am Hypervisor den Festplattenplatz der virtuellen Maschine um zusätzliche 2 GB. Ist die Erweiterung der Festplatte nicht möglich, prüfen Sie, dass keine Snapshots vorhanden sind, und schalten Sie andernfalls die virtuelle Maschine aus, wenn die Erweiterung im laufenden Betrieb nicht unterstützt wird.

Sobald der Festplattenplatz auf Ebene der virtuellen Maschine erweitert ist, sind die folgenden Befehle erforderlich, die als root auszuführen sind, um die Partition /usr zu erweitern:

1
2
3
4
5
6
echo 1 > /sys/class/block/sda/device/rescan
start_lvm_partition=`fdisk -l /dev/sda | grep LVM | awk '{print $2}'`
echo -e "d\n2\nn\ne\n2\n\n\nn\n$start_lvm_partition\n\nt\n5\n8E\nw" | fdisk /dev/sda
pvresize /dev/sda5
lvresize -l +100%FREE /dev/mapper/SystanciaLVMGroup-usr
resize2fs /dev/mapper/SystanciaLVMGroup-usr

Versionsupgrade

Aktualisierung der Debian-Pakete

Da das Upgrade von CyberElements Bastion ein Upgrade von Debian erfordert, wird empfohlen, die Debian-11-Pakete ordnungsgemäß zu aktualisieren, bevor auf Debian 12 gewechselt wird. Führen Sie dazu die folgenden Befehle als root aus (Systemaktualisierung, dann Entfernen der nicht benötigten Pakete):

1
2
3
apt update
apt upgrade -y
apt autoremove -y

Es können Meldungen erscheinen, die Sie auffordern, die Konfiguration mehrerer Konfigurationsdateien zu ändern. Wählen Sie in diesen Fällen die Option, die aktuelle Konfiguration beizubehalten.

Vorbereitung der Treiber von Microsoft SQL Server

Zusätzliche Vorgänge sind erforderlich, wenn die Treiber von Microsoft SQL Server installiert sind (dies ist bei den von Systancia bereitgestellten virtuellen Appliances der Fall).
Um zu prüfen, ob sie auf dem Server vorhanden sind, kann der folgende Befehl als root ausgeführt werden:

1
apt list --installed ms*

Erscheint keine Antwort, sind die Treiber nicht installiert und Sie können zum Schritt der Vorbereitung des Spiegels übergehen.
Andernfalls, wenn die Treiber installiert sind, sollten zwei Pakete aufgeführt werden: msodbcsql17 und mssql-tools. Befolgen Sie die Anweisungen dieses Abschnitts.

Beispiele

Ein Server, auf dem die Treiber nicht installiert sind, würde mit dem vorherigen Befehl das folgende Ergebnis liefern:

1
Listing... Done

Ein Server, auf dem die Treiber installiert sind, liefert ein Ergebnis ähnlich diesem (die Versionen der Pakete können abweichen):

1
2
3
Listing... Done
msodbcsql17/bullseye,now 17.10.6.1-1 amd64 [installed]
mssql-tools/bullseye,now 17.10.1.1-1 amd64 [installed]

Die folgenden Befehle sind erforderlich, um eine bestimmte Version der Pakete zu installieren und ein erfolgreiches Versionsupgrade zu gewährleisten:

1
env ACCEPT_EULA=Y apt install -y --allow-downgrades odbcinst=2.3.6-0.1+b1 odbcinst1debian2=2.3.6-0.1+b1 libodbc1=2.3.6-0.1+b1 unixodbc=2.3.6-0.1+b1 mssql-tools=17.9.1.1-1 msodbcsql17=17.9.1.1-1

Konfigurieren Sie das für Debian 12 geeignete Microsoft-Repository, um das Versionsupgrade vorzubereiten:

1
echo "deb [arch=amd64] https://packages.microsoft.com/debian/12/prod bookworm main" > /etc/apt/sources.list.d/mssql-release.list

Vorbereitung des Spiegelservers CyberElements Cleanroom 4.6

Der in der Vorbereitungsphase heruntergeladene Spiegelserver (Datei mit der Erweiterung tgz) muss über SCP an den Server übertragen werden. Er ist im Verzeichnis /tmp/ abzulegen.

Bereiten Sie anschließend den Spiegelserver vor, indem Sie die folgenden Befehle als root ausführen (Restdateien einer früheren Versionsaktualisierung werden dabei gelöscht):

1
2
3
mkdir -p /opt/systancia/repository
rm -rf /opt/systancia/repository/*
tar xvzf /tmp/*.tgz -C /opt/systancia/repository/

Konfiguration von APT

Der Paketmanager APT ist so konfiguriert, dass er die Debian-11-Pakete bezieht; er muss neu konfiguriert werden, damit er die Debian-12-Pakete bezieht. Außerdem muss der Verweis auf den lokalen CyberElements Bastion-Spiegel aktualisiert werden. Führen Sie dazu die folgenden Befehle als root aus:

1
2
echo -e 'deb http://security.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware\ndeb http://ftp.fr.debian.org/debian bookworm main contrib non-free non-free-firmware\ndeb http://ftp.fr.debian.org/debian bookworm-updates main contrib non-free non-free-firmware' > /etc/apt/sources.list
echo "deb file:///opt/systancia/repository/ bookworm ipdiva" > /etc/apt/sources.list.d/systancia.list

Über die Konfiguration der neuen Repositorys hinaus empfehlen wir dringend, die folgende Einstellung anzuwenden, damit APT die nicht zwingend erforderlichen empfohlenen Abhängigkeiten nicht installiert und so die Anzahl der installierten Komponenten sinkt. Der folgende Befehl wendet diese Einstellung alsroot an:

1
echo -e 'APT::Install-Recommends false;\nAPT::Install-Suggests false;' > /etc/apt/apt.conf.d/99norecommends

Schließlich muss die Liste der Pakete in den Repositorys mit dem folgenden Befehl aktualisiert werden:

1
apt update

Das Versionsupgrade auslösen

Greifen Sie per SSH auf den Mediation-Controller-Server zu, wechseln Sie zu root und öffnen Sie anschließend ein screen wie oben angegeben.

Beginnen Sie damit, bestimmte Pakete zu aktualisieren, damit das Versionsupgrade durchgeführt werden kann. Bei der Ausführung des ersten Befehls ist eine Fehlermeldung zu erwarten; der zweite Befehl behebt den Fehler:

1
2
apt install -y python3-cleanroom-django-mssql python3-ipdiva-ua-parser python3-ipdiva-user-agents python3-ipdiva-django2
apt install -y --fix-broken

Beim Versionsupgrade eines Mediation Controller von Debian 11 auf Debian 12 wird das Paket collectd aktualisiert und ist danach nicht mehr mit der von CyberElements Bastion erzeugten Konfigurationsdatei (/etc/collectd/collectd.conf) kompatibel. Dies kann während der Aktualisierung einen Fehler verursachen.

Deaktivieren Sie collectd, um dies zu vermeiden:

1
2
systemctl stop collectd 
systemctl disable collectd

Anschließend kann die Aktualisierung mit dem folgenden Befehl gestartet werden:

1
apt dist-upgrade -y

Während der Aktualisierung werden Ihnen mehrere Fragen gestellt, ob die Konfigurationsdateien beibehalten und gemäß der Standardkonfiguration von Debian 12 aktualisiert werden sollen oder ob die vorhandene spezifische Konfiguration erhalten bleiben soll. Hier unsere Empfehlungen für die meisten Dateien, auf die Sie stoßen können:

Konfigurationsdatei Empfohlene Aktion
/etc/issue Beibehalten, antworten Sie N
/etc/issue.net Beibehalten, antworten Sie N
/etc/security/limits.conf Beibehalten, antworten Sie N
/etc/login.defs Beibehalten, antworten Sie N
/etc/shibboleth/shibboleth2.xml Beibehalten, antworten Sie N
/etc/shibboleth/shibd.logger Änderungen anwenden, antworten Sie Y
/etc/default/ntpsec Änderungen anwenden, antworten Sie Y
/etc/snmp/snmpd.conf Änderungen anwenden, antworten Sie Y
/etc/logrotate.d/IPdivaServer Änderungen anwenden, antworten Sie Y
/etc/ssh/sshd_config Beibehalten, antworten Sie Keep the local version currently installed
/etc/ssh/ssh_config Änderungen anwenden, antworten Sie Y
/etc/apache2/ports.conf Beibehalten, antworten Sie N
/etc/init.d/apache2 Beibehalten, antworten Sie N
/etc/modsecurity/modsecurity.conf-recommended Änderungen anwenden, antworten Sie Y
/etc/ipdiva/httpd/commonParameters.conf Änderungen anwenden, antworten Sie Y
/etc/ipdiva/care/djangosettings.ini Änderungen anwenden, antworten Sie Y
/etc/crontab Änderungen anwenden, antworten Sie Y
/etc/openssl.cnf Änderungen anwenden, antworten Sie Y
/etc/audit/rules.d/audit.rules Beibehalten, antworten Sie N
/etc/pam.d/su Beibehalten, antworten Sie N
/etc/sysctl.conf Beibehalten, antworten Sie N

Akzeptieren Sie die Konfigurationsmeldung des Pakets glibc:

Akzeptieren Sie den automatischen Neustart der Dienste:

Führen Sie nach Abschluss der Aktualisierung die folgenden Befehle aus, um collectd wieder zu aktivieren, die nicht benötigten Pakete zu entfernen und die Maschine neu zu starten:

1
2
3
4
systemctl start collectd
systemctl enable collectd
apt autoremove -y
reboot

Spezifische Aktionen für Mediation Controller im Cluster

Führen Sie auf dem Mediation-Controller-Server SLAVE die folgenden Befehle aus, um das zwischen dem Mediation Controller MASTER und dem SLAVE geteilte Geheimnis neu zu synchronisieren:

1
2
hostManagerCtl masterSynchro /etc/ipdiva/secure/secret /etc/ipdiva/secure/secret
systemctl restart apache2

Versionsupgrade der PostgreSQL-Datenbankinstanz

Aktualisieren Sie auf dem Mediation-Controller-Server die PostgreSQL-Datenbankinstanz von Version 13 auf Version 15. Führen Sie dazu die folgenden Anweisungen mit den passenden root-Rechten aus.

Prüfen Sie vor der Migration den Status der PostgreSQL-Instanzen:

1
pg_lsclusters

Führen Sie die folgenden Befehle aus, um die Datenbankinstanz auf PostgreSQL Version 15 zu aktualisieren:

1
2
3
4
pg_dropcluster --stop 15 main
systemctl stop postgresql
pg_upgradecluster 13 main
systemctl start postgresql

Prüfen Sie, dass die Datenbankinstanz korrekt aktualisiert wurde. Es sollten zwei Instanzen erscheinen, eine in Version 13 und eine in Version 15, wobei letztere die einzige aktive ist. Die Prüfung erfolgt mit dem folgenden Befehl:

1
pg_lsclusters

Wenn das Versionsupgrade erfolgreich war, kann die Datenbankinstanz in Version 13 gelöscht werden:

1
pg_dropcluster 13 main

Das Löschen der PostgreSQL-Pakete der Version 13 kann gestartet werden:

1
apt -y --purge autoremove postgresql-client-13 postgresql-13

Migration der Datenbank von CyberElements Bastion

Die Konfiguration des Produkts wird in der Datenbank gespeichert, die migriert werden muss, damit sie die Einstellungen der von der neuen Version eingeführten Änderungen aufnehmen kann. Der Vorgang wird auf dem Mediation Controller als root ausgeführt.

Cluster-Architektur

Bei einer Cluster-Architektur ist der Vorgang nur von einem einzigen Mediation Controller aus auszuführen, unabhängig davon, welcher es ist.

Außerdem muss der folgende Befehl ausgeführt werden:

1
python3 /var/lib/ipdiva/care/manage.py migrate

Die Migration der Daten wird mit einem Befehl entsprechend diesem ausgelöst:

1
python3 /var/lib/ipdiva/care/manage.py migrate --database=<org_clr>

Dabei muss <org_clr> durch den Namen der zu migrierenden Organisation ersetzt werden. Beachten Sie: Wenn der Mediation Controller mehrere Organisationen hat (multi-tenant), müssen Sie den Befehl so oft ausführen, wie Organisationen zu migrieren sind.

Beispiel

Für eine Plattform CyberElements Bastion mit den Organisationen systancia und systancia-test müssen Sie die folgenden Befehle ausführen:

1
2
python3 /var/lib/ipdiva/care/manage.py migrate --database=systancia
python3 /var/lib/ipdiva/care/manage.py migrate --database=systancia-test

Nach der Migration der Datenbank muss der Dienst Apache2 neu gestartet werden:

1
systemctl restart apache2

Wiederherstellung der Konfigurationen

Einige Konfigurationen wurden während des Versionsupgrades überschrieben und müssen wiederhergestellt werden.

Datei commonParameters.conf:

Verschieben Sie die Tags <Location> zu den HTML5 Gateways, die sich in der Regel am Ende der Datei befinden, aus der Datei /etc/ipdiva/httpd/commonParameters.conf.dpkg-old nach /etc/ipdiva/httpd/commonParameters.extra.conf (erstellen Sie die Datei, wenn sie nicht existiert). Ist kein Tag <Location> vorhanden, können die folgenden Beispiele kopiert werden.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<Location /HTML5/>
    Order allow,deny
    Allow from all
    ProxyPass http://127.0.0.1:1234/systanciaHTML5-6.0/ flushpackets=on
    ProxyPassReverse http://127.0.0.1:1234
</Location>

<Location /HTML5/websocket-tunnel>
    Order allow,deny
    Allow from all
    ProxyPass ws://127.0.0.1:1234/systanciaHTML5-6.0/websocket-tunnel
    ProxyPassReverse ws://127.0.0.1:1234/systanciaHTML5-6.0/websocket-tunnel
</Location>
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<Location /HTML5-1/>
    Order allow,deny
    Allow from all
    ProxyPass http://127.0.0.1:1234/systanciaHTML5-6.0/ flushpackets=on
    ProxyPassReverse http://127.0.0.1:1234
</Location>

<Location /HTML5-1/websocket-tunnel>
    Order allow,deny
    Allow from all
    ProxyPass ws://127.0.0.1:1234/systanciaHTML5-6.0/websocket-tunnel
    ProxyPassReverse ws://127.0.0.1:1234/systanciaHTML5-6.0/websocket-tunnel
</Location>

<Location /HTML5-2/>
    Order allow,deny
    Allow from all
    ProxyPass http://127.0.0.1:1235/systanciaHTML5-6.0/ flushpackets=on
    ProxyPassReverse http://127.0.0.1:1235
</Location>

<Location /HTML5-2/websocket-tunnel>
    Order allow,deny
    Allow from all
    ProxyPass ws://127.0.0.1:1235/systanciaHTML5-6.0/websocket-tunnel
    ProxyPassReverse ws://127.0.0.1:1235/systanciaHTML5-6.0/websocket-tunnel
</Location>

Datei djangosettings.ini:

Kopieren Sie die Information aus Zeile 2 „allowed_hosts“ der Datei /etc/ipdiva/care/djangosettings.ini.dpkg-old in die Datei /etc/ipdiva/care/djangosettings.ini. Dies kann mit dem folgenden Befehl als root automatisiert werden:

1
sed -i "2c\\`sed -n '2p' /etc/ipdiva/care/djangosettings.ini.dpkg-old`" /etc/ipdiva/care/djangosettings.ini

Anwenden der Wiederherstellungen:

Um die Wiederherstellungen anzuwenden, ist ein Neustart des Dienstes Apache2 als root erforderlich:

1
systemctl restart apache2

Validierung

Nach Abschluss des Versionsupgrades muss die Infrastruktur CyberElements Bastion validiert werden, um sicherzustellen, dass sie korrekt funktioniert, bevor sie wieder in Produktion geht. Schlägt die Validierung fehl, ziehen Sie einen Rückschritt über die Wiederherstellung der Sicherungen der CyberElements Bastion-Server in Betracht.

Rufen Sie die Administrationsoberfläche einer Organisation und anschließend das Menü „About“ in der Steuerleiste auf, um zu prüfen, dass die Version des Mediation Controller korrekt auf 4.6 aktualisiert wurde.

Die ersten Tests der Funktionsweise der Plattform können gestartet werden, wir empfehlen jedoch die Version 4.6 des Edge Gateway, um eine optimale Leistung der Anwendungen CyberElements Bastion zu gewährleisten.