Ga naar inhoud

Live upgrade van de Mediation Controller

Belangrijk

De documentatie voor de live upgrade van de Mediation Controller is bedoeld voor elke Mediation Controller die op Debian 11 draait. De Debian-versie kan met de volgende opdracht worden gecontroleerd (uit te voeren via SSH of via consoletoegang):

1
cat /etc/debian_version

Informatie

Ter herinnering: de overstap naar root moet op Debian-machines met de volgende opdracht worden uitgevoerd:

1
su -

Planning en voorbereiding

De netwerkstromen openen

Bij het upgraden van het product moeten er vanwege de overgang van Debian 11 naar 12 veel pakketten uit de Debian-repositories worden gedownload. De toegang via TCP 80 naar security.debian.org en ftp.fr.debian.org moet open zijn.

Om het openen van de stromen op de machine te testen, kan een synchronisatie van de Debian-repositories worden gestart. Als er foutmeldingen over de toegang tot de Debian-repositories verschijnen, is de netwerkstroom niet open, waarschijnlijk geblokkeerd door de firewall van het bedrijf. De synchronisatie van de repositories kan met de volgende opdracht worden gestart:

1
apt update

De mirror en de nodige hulpmiddelen downloaden

De mirror van CyberElements Cleanroom 4.6 kan via deze link worden gedownload (vereist het aanmaken van een klantaccount): Systancia Marketplace

Naast de mirror zijn er voor de upgrade hulpmiddelen van derden nodig:

  • Een SSH-client (op Windows kan het hulpmiddel PuTTY worden gebruikt)
  • Een SCP-client (op Windows kunnen de hulpmiddelen WinSCP of FileZilla worden gebruikt)

Het hulpmiddel screen installeren en gebruiken

Met het hulpmiddel screen kunt u meerdere shellterminals in één console openen. Het gebruik van dit hulpmiddel is onontbeerlijk voor de upgrade naar de versie CyberElements Bastion, om de afhankelijkheid van de stabiliteit van de netwerkverbinding op te heffen. Zonder het hulpmiddel screen zou de installatie namelijk worden gestopt bij een onderbreking van de SSH-verbinding met de CyberElements Bastion-servers.

Door het hulpmiddel screen te gebruiken, kan bij het opnieuw verbinden met de shellconsole van de apparatuur CyberElements Bastion de terminal worden teruggehaald waarin het updateproces is uitgevoerd.

Het pakket screen wordt geïnstalleerd met de volgende opdrachtregel:

1
apt install --no-install-recommends screen

Om een nieuwe terminal screen te openen, moet de volgende opdracht worden uitgevoerd:

1
screen -S <ID>

Vervang <ID> door een naam die de sessie aanduidt.

Voorbeeld

Bij versie-upgrades van CyberElements is de aanduiding cye-upgrade gemakkelijk te herkennen. De opdracht luidt dan als volgt:

1
screen -S cye-upgrade

Om een met screen geopende terminal terug te halen, volstaat het de volgende opdracht uit te voeren:

1
screen -r <ID>

Vervang <ID> door de naam die bij het openen van de sessie is vastgelegd.

Voorbeeld

De eerder met de aanduiding cye-upgrade geopende terminal kan met de volgende opdracht worden teruggehaald:

1
screen -r cye-upgrade

Om de terminal na afloop van de upgrade te sluiten, voer in de terminal de opdracht exit of de sneltoets ctrl+d in.

U komt daarmee terug in de console. Het bericht ”screen is terminating” bevestigt dat de terminal is gesloten.

Uitbreiding van de schijfruimte van de virtuele appliances

Bij de virtuele appliances Systancia Cleanroom 4.4 of 4.5 moet aan de partitie /usr een schijfuitbreiding van 2 GB worden toegevoegd. Die bewerking is nodig om over voldoende schijfruimte te beschikken voor de upgrade en te voorkomen dat de bewerking vastloopt.

Bij het verbinden met de Mediation Controller, of dat via SSH of in consolemodus is, informeert een welkomstmelding u dat u met een Systancia-machine bent verbonden. Een extra regel geeft de versie van de appliance aan.

Voorbeeld

Een virtuele appliance Mediation Controller in versie 4.5 geeft het volgende resultaat:

 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

Als de machine geen virtuele appliance is die met versie 4.4 of 4.5 is geleverd, kan dit hoofdstuk worden overgeslagen om direct naar de upgrade te gaan.

Back-up sterk aanbevolen

De volgende stappen wijzigen de schijfpartitionering van de Mediation Controller. Als er handmatige wijzigingen zijn doorgevoerd, zijn deze instructies mogelijk niet geschikt en kan de machine vastlopen.

Maak vóór u verdergaat een back-up van de machine of dupliceer indien nodig de virtuele machine. Snapshots kunnen niet worden gebruikt, omdat zij, met name bij VMware, het uitbreiden van een schijf verhinderen.

Breid op de hypervisor de schijfruimte van de virtuele machine met 2 GB uit. Als het niet mogelijk is de schijf uit te breiden, controleer dan of er geen snapshots zijn, en schakel de virtuele machine anders uit als uitbreiding tijdens de werking niet wordt ondersteund.

Zodra de schijfruimte op het niveau van de virtuele machine is uitgebreid, zijn de volgende opdrachten, die als root moeten worden uitgevoerd, nodig om de partitie /usr uit te breiden:

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

Upgrade

De Debian-pakketten bijwerken

Aangezien de upgrade van CyberElements Bastion een upgrade van Debian vereist, is het aan te raden de Debian 11-pakketten correct bij te werken voordat u naar Debian 12 overgaat. Voer daarvoor de volgende opdrachten uit als root (het systeem bijwerken en daarna de onnodige pakketten verwijderen):

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

Er kunnen berichten verschijnen waarin u wordt gevraagd de configuratie van meerdere configuratiebestanden te wijzigen. Kies in die gevallen de optie om de huidige configuratie te behouden.

Voorbereiding van de stuurprogramma's van Microsoft SQL Server

Er zijn aanvullende bewerkingen nodig als de stuurprogramma's van Microsoft SQL Server zijn geïnstalleerd (dat is het geval bij de virtuele appliances die Systancia levert).
Om te controleren of ze op de server aanwezig zijn, kan de volgende opdracht als root worden uitgevoerd:

1
apt list --installed ms*

Als er geen antwoord verschijnt, zijn de stuurprogramma's niet geïnstalleerd en kunt u naar de stap voor de voorbereiding van de mirror gaan.
Anders, als de stuurprogramma's zijn geïnstalleerd, zouden er twee pakketten moeten worden vermeld: msodbcsql17 en mssql-tools. Volg de instructies van deze sectie.

Voorbeelden

Een server waarop de stuurprogramma's niet zijn geïnstalleerd, zou met de vorige opdracht het volgende resultaat geven:

1
Listing... Done

Een server waarop de stuurprogramma's zijn geïnstalleerd, geeft een resultaat dat hierop lijkt (de versies van de pakketten kunnen verschillen):

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]

De volgende opdrachten zijn nodig om een specifieke versie van de pakketten te installeren en zo een geslaagde upgrade te garanderen:

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

Configureer de Microsoft-repository die geschikt is voor Debian 12 om de upgrade voor te bereiden:

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

De mirror CyberElements Cleanroom 4.6 voorbereiden

De tijdens de voorbereidingsfase opgehaalde mirror (bestand met de extensie tgz) moet via SCP naar de server worden verzonden. Het bestand moet in de map /tmp/ worden geplaatst.

Bereid vervolgens de mirror voor door de volgende opdrachten als root uit te voeren (restbestanden van een eerdere versie-upgrade worden daarbij verwijderd):

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

Configuratie van APT

De pakketbeheerder APT is geconfigureerd om de Debian 11-pakketten op te halen; hij moet opnieuw worden geconfigureerd om de Debian 12-pakketten op te halen. Ook de verwijzing naar de lokale mirror CyberElements Bastion moet worden bijgewerkt. Voer daarvoor de volgende opdrachten uit als root:

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

Naast de configuratie van de nieuwe repositories bevelen wij sterk aan de volgende instelling toe te passen zodat APT de niet strikt noodzakelijke aanbevolen afhankelijkheden niet installeert, om het aantal geïnstalleerde componenten te beperken. Met de volgende opdracht wordt deze instelling toegepast als root:

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

Tot slot moet de lijst met pakketten in de repositories met de volgende opdracht worden bijgewerkt:

1
apt update

De versie-upgrade starten

Ga via SSH naar de Mediation Controller-server en schakel over naar root, en open daarna een screen zoals hierboven aangegeven.

Werk eerst bepaalde specifieke pakketten bij, zodat de upgrade kan worden uitgevoerd. Bij het uitvoeren van de eerste opdracht is een foutmelding te verwachten, maar de tweede opdracht verhelpt de fout:

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

Bij de upgrade van een Mediation Controller van Debian 11 naar Debian 12 wordt het pakket collectd bijgewerkt en is het niet langer compatibel met het door CyberElements Bastion gegenereerde configuratiebestand (/etc/collectd/collectd.conf). Dat kan tijdens de update een fout veroorzaken.

Schakel collectd uit om dat te voorkomen:

1
2
systemctl stop collectd 
systemctl disable collectd

Daarna kan de upgrade met de volgende opdracht worden gestart:

1
apt dist-upgrade -y

Tijdens de upgrade worden u verschillende vragen gesteld over het al dan niet behouden van de configuratiebestanden en het bijwerken ervan volgens de standaardconfiguratie van Debian 12, of over het behouden van de aanwezige specifieke configuratie. Hier zijn onze aanbevelingen voor de meeste bestanden die u kunt tegenkomen:

Configuratiebestand Aanbevolen actie
/etc/issue Behouden, antwoord N
/etc/issue.net Behouden, antwoord N
/etc/security/limits.conf Behouden, antwoord N
/etc/login.defs Behouden, antwoord N
/etc/shibboleth/shibboleth2.xml Behouden, antwoord N
/etc/shibboleth/shibd.logger Wijzigingen toepassen, antwoord Y
/etc/default/ntpsec Wijzigingen toepassen, antwoord Y
/etc/snmp/snmpd.conf Wijzigingen toepassen, antwoord Y
/etc/logrotate.d/IPdivaServer Wijzigingen toepassen, antwoord Y
/etc/ssh/sshd_config Behouden, antwoord Keep the local version currently installed
/etc/ssh/ssh_config Wijzigingen toepassen, antwoord Y
/etc/apache2/ports.conf Behouden, antwoord N
/etc/init.d/apache2 Behouden, antwoord N
/etc/modsecurity/modsecurity.conf-recommended Wijzigingen toepassen, antwoord Y
/etc/ipdiva/httpd/commonParameters.conf Wijzigingen toepassen, antwoord Y
/etc/ipdiva/care/djangosettings.ini Wijzigingen toepassen, antwoord Y
/etc/crontab Wijzigingen toepassen, antwoord Y
/etc/openssl.cnf Wijzigingen toepassen, antwoord Y
/etc/audit/rules.d/audit.rules Behouden, antwoord N
/etc/pam.d/su Behouden, antwoord N
/etc/sysctl.conf Behouden, antwoord N

Aanvaard de configuratiemelding van het pakket glibc:

Aanvaard de automatische herstart van de services:

Voer na afloop van de upgrade de volgende opdrachten uit om collectd opnieuw te activeren, de onnodige pakketten te verwijderen en de machine opnieuw te starten:

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

Specifieke acties voor Mediation Controllers in Cluster

Voer op de SLAVE Mediation Controller-server de volgende opdrachten uit om het geheim dat de MASTER Mediation Controller en de SLAVE delen opnieuw te synchroniseren:

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

Upgrade van de PostgreSQL-database-instantie

Werk op de Mediation Controller-server de PostgreSQL-database-instantie bij van versie 13 naar versie 15. Voer daarvoor de volgende instructies uit met de passende root-rechten.

Controleer vóór de migratie de status van de PostgreSQL-instanties:

1
pg_lsclusters

Voer de volgende opdrachten uit om de database-instantie bij te werken naar PostgreSQL versie 15:

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

Controleer of de database-instantie correct is bijgewerkt. Er zouden twee instanties moeten verschijnen, een in versie 13 en een in versie 15, waarbij die laatste de enige actieve is. De controle gebeurt met de volgende opdracht:

1
pg_lsclusters

Als de upgrade is geslaagd, kan de database-instantie in versie 13 worden verwijderd:

1
pg_dropcluster 13 main

Het verwijderen van de PostgreSQL-pakketten van versie 13 kan worden gestart:

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

Migratie van de database van CyberElements Bastion

De configuratie van het product wordt opgeslagen in de database, die moet worden gemigreerd zodat ze de instellingen van de door de nieuwe versie ingevoerde wijzigingen kan bevatten. De bewerking wordt op de Mediation Controller als root uitgevoerd.

Cluster-architectuur

Bij een Cluster-architectuur moet de bewerking vanaf slechts één Mediation Controller worden uitgevoerd, ongeacht welke.

Het is ook nodig de volgende opdracht uit te voeren:

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

De migratie van de gegevens wordt gestart met een opdracht die gelijkwaardig is aan deze:

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

Waarbij <org_clr> moet worden vervangen door de naam van de te migreren organisatie. Let erop dat als de Mediation Controller meerdere organisaties heeft (multi-tenants), u de opdracht net zoveel keer moet uitvoeren als er organisaties te migreren zijn.

Voorbeeld

Voor een CyberElements Bastion-platform met de organisaties systancia en systancia-test moet u de volgende opdrachten uitvoeren:

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

Na de migratie van de database moet de service Apache2 opnieuw worden gestart:

1
systemctl restart apache2

De configuraties terugzetten

Sommige configuraties zijn tijdens het upgradeproces overschreven en moeten worden teruggezet.

Bestand commonParameters.conf:

Verplaats de tags <Location> die betrekking hebben op de HTML5 Gateways en die zich gewoonlijk aan het einde van het bestand bevinden, van het bestand /etc/ipdiva/httpd/commonParameters.conf.dpkg-old naar /etc/ipdiva/httpd/commonParameters.extra.conf (maak het bestand aan als het niet bestaat). Als er geen tag <Location> aanwezig is, kunnen de volgende voorbeelden worden gekopieerd.

 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>

Bestand djangosettings.ini:

Kopieer de informatie van regel 2 ”allowed_hosts” van het bestand /etc/ipdiva/care/djangosettings.ini.dpkg-old naar het bestand /etc/ipdiva/care/djangosettings.ini. Dat kan met de volgende opdracht als root worden geautomatiseerd:

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

De terugzettingen toepassen:

Om de terugzettingen toe te passen, is een herstart van de service Apache2 als root nodig:

1
systemctl restart apache2

Validatie

Zodra de upgrade is voltooid, moet de CyberElements Bastion-infrastructuur worden gevalideerd om zeker te zijn dat ze correct werkt, voordat ze weer in productie gaat. Als de validatie mislukt, overweeg dan een terugkeer naar de vorige versie door de back-ups van de CyberElements Bastion-servers terug te zetten.

Ga naar de beheerdersinterface van een organisatie en vervolgens naar het menu ”About” in de bedieningsbalk om te controleren of de versie van de Mediation Controller correct is bijgewerkt naar 4.6.

De eerste tests van de werking van het platform kunnen worden gestart, maar wij raden versie 4.6 van Edge Gateway aan om optimale prestaties van de CyberElements Bastion-applicaties te garanderen.