Gå till innehållet

Versionsuppgradering av Mediation Controller i drift

Viktigt

Dokumentationen för versionsuppgradering av Mediation Controller i drift gäller varje Mediation Controller som körs på Debian 11. Debian-versionen kan kontrolleras med följande kommando (ska köras via SSH- eller konsolåtkomst):

1
cat /etc/debian_version

Information

Som påminnelse ska växlingen till root på Debian-maskinerna göras med följande kommando:

1
su -

Planering och förberedelse

Öppna nätverksflöden

Vid uppgraderingen av produkten måste många paket laddas ned från Debian-repositorierna, på grund av övergången från Debian 11 till 12. Åtkomst via TCP 80 till security.debian.org och ftp.fr.debian.org måste vara öppen.

För att testa öppningen av flödena på maskinen kan en synkronisering av Debian-repositorierna startas. Om felmeddelanden om åtkomsten till Debian-repositorierna visas är nätverksflödet inte öppet, sannolikt blockerat av företagets brandvägg. Synkroniseringen av repositorierna kan startas med följande kommando:

1
apt update

Ladda ned spegeln och de verktyg som behövs

Spegeln för CyberElements Cleanroom 4.6 kan laddas ned via den här länken (kräver att ett kundkonto skapas): Systancia Marketplace

Utöver spegeln krävs verktyg från tredje part för uppgraderingen:

  • En SSH-klient (i Windows kan verktyget PuTTY användas)
  • En SCP-klient (i Windows kan verktygen WinSCP eller FileZilla användas)

Installation och användning av verktyget screen

Verktyget screen gör det möjligt att öppna flera shell-terminaler i en enda konsol. Det är nödvändigt att använda verktyget för att uppgradera till versionen CyberElements Bastion, för att ta bort beroendet av nätverksanslutningens stabilitet. Utan verktyget screen skulle installationen nämligen avbrytas om SSH-anslutningen till CyberElements Bastion-servrarna bröts.

Genom att använda verktyget screen kan den terminal där uppdateringsprocessen kördes hämtas tillbaka när du återansluter till shell-konsolen på CyberElements Bastion-utrustningen.

Paketet screen bör installeras med följande kommandorad:

1
apt install --no-install-recommends screen

För att öppna en ny terminal med screen måste följande kommando köras:

1
screen -S <ID>

Byt ut <ID> mot ett namn som identifierar sessionen.

Exempel

Vid versionsuppgraderingar av CyberElements är identifieraren cye-upgrade lätt att känna igen. Kommandot blir därför följande:

1
screen -S cye-upgrade

För att återta en terminal som öppnats med screen räcker det att köra följande kommando:

1
screen -r <ID>

Byt ut <ID> mot det namn som angavs när sessionen öppnades.

Exempel

Den terminal som tidigare öppnades med identifieraren cye-upgrade kan återtas med följande kommando:

1
screen -r cye-upgrade

För att stänga terminalen när uppgraderingen är klar, ange kommandot exit eller tangentbordsgenvägen ctrl+d i terminalen.

Detta tar dig tillbaka till konsolen. Meddelandet ”screen is terminating” bekräftar att terminalen har stängts.

Utökning av diskutrymmet på virtuella appliancer

På virtuella appliancer med Systancia Cleanroom 4.4 eller 4.5 måste partitionen /usr utökas med 2 GB diskutrymme. Denna åtgärd är nödvändig för att ha tillräckligt med diskutrymme för versionsuppgraderingen och för att undvika att åtgärden blockeras.

När du ansluter till Mediation Controller, antingen via SSH eller i konsolläge, informerar ett välkomstmeddelande dig om att du är ansluten till en Systancia-maskin. En ytterligare rad anger appliancens version.

Exempel

En virtuell appliance Mediation Controller med version 4.5 ger följande resultat:

 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

Om maskinen inte är en virtuell appliance som levererats med version 4.4 eller 4.5 kan detta kapitel hoppas över för att gå direkt till versionsuppgraderingen.

Backup rekommenderas starkt

Följande steg ändrar partitioneringen av Mediation Controllers disk. Om manuella ändringar har gjorts kan dessa anvisningar vara olämpliga, med följden att maskinen blockeras.

Ta en backup av maskinen innan du fortsätter, eller duplicera den virtuella maskinen om det behövs. Snapshots kan inte användas eftersom de, särskilt i VMware, hindrar att en disk utökas.

Utöka den virtuella maskinens diskutrymme med ytterligare 2 GB på hypervisornivå. Om det inte går att utöka disken kontrollerar du att det inte finns några snapshots, och stänger annars av den virtuella maskinen om utökning i drift inte stöds.

När diskutrymmet har utökats på den virtuella maskinens nivå krävs följande kommandon, som ska köras som root, för att utöka partitionen /usr:

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

Versionsuppgradering

Uppdatering av Debian-paketen

Eftersom uppgraderingen av CyberElements Bastion kräver en uppgradering av Debian rekommenderas att du uppdaterar Debian 11-paketen ordentligt innan du byter till Debian 12. Kör följande kommandon som root för att göra det (systemuppdatering och därefter borttagning av onödiga paket):

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

Meddelanden kan visas som ber dig att ändra konfigurationen i flera konfigurationsfiler. Välj i dessa fall alternativet att behålla den aktuella konfigurationen.

Förbereda drivrutinerna för Microsoft SQL Server

Ytterligare åtgärder krävs om drivrutinerna för Microsoft SQL Server är installerade (så är fallet på de virtuella appliancer som Systancia tillhandahåller).
För att kontrollera om de finns på servern kan följande kommando köras som root:

1
apt list --installed ms*

Om inget svar visas är drivrutinerna inte installerade och du kan gå vidare till steget där spegeln förbereds.
Annars, om drivrutinerna är installerade, ska två paket listas: msodbcsql17 och mssql-tools. Följ anvisningarna i detta avsnitt.

Exempel

En server där drivrutinerna inte är installerade skulle ge följande resultat av det föregående kommandot:

1
Listing... Done

En server där drivrutinerna är installerade ger ett resultat som liknar detta (paketens versioner kan skilja sig):

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]

Följande kommandon krävs för att installera en specifik version av paketen och säkerställa en lyckad versionsuppgradering:

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

Konfigurera det Microsoft-repository som är anpassat för Debian 12 för att förbereda versionsuppgraderingen:

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

Förbereda spegeln för CyberElements Cleanroom 4.6

Den spegel som hämtades under förberedelsefasen (filen med filändelsen tgz) måste skickas till servern via SCP. Den ska placeras i katalogen /tmp/.

Förbered därefter spegeln genom att köra följande kommandon som root (kvarvarande filer från en tidigare versionsuppgradering tas då bort):

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

Konfiguration av APT

Pakethanteraren APT är konfigurerad för att hämta Debian 11-paketen; den måste konfigureras om för att hämta Debian 12-paketen. Det är också nödvändigt att uppdatera referensen till den lokala CyberElements Bastion-spegeln. Kör följande kommandon som root för att göra det:

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

Utöver konfigurationen av de nya repositorierna rekommenderar vi starkt att tillämpa följande inställning, så att APT inte installerar rekommenderade beroenden som inte är strikt nödvändiga, för att minska antalet installerade komponenter. Följande kommando tillämpar denna inställning somroot:

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

Slutligen måste listan över paket i repositorierna uppdateras med följande kommando:

1
apt update

Utlösa versionsuppgraderingen

Anslut till Mediation Controller-servern via SSH och växla till root, öppna sedan ett screen enligt anvisningarna ovan.

Börja med att uppdatera vissa specifika paket så att versionsuppgraderingen kan genomföras. Ett felmeddelande är att vänta när det första kommandot körs, men felet rättas av det andra kommandot:

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

När en Mediation Controller uppgraderas från Debian 11 till Debian 12 uppdateras paketet collectd och blir inkompatibelt med den konfigurationsfil som CyberElements Bastion har genererat (/etc/collectd/collectd.conf). Detta kan ge upphov till ett fel under uppdateringen.

Inaktivera collectd för att undvika detta:

1
2
systemctl stop collectd 
systemctl disable collectd

Därefter kan uppgraderingen startas med följande kommando:

1
apt dist-upgrade -y

Under uppgraderingen får du flera frågor om huruvida konfigurationsfilerna ska behållas och uppdateras enligt standardkonfigurationen för Debian 12, eller om den befintliga specifika konfigurationen ska bevaras. Här är våra rekommendationer för de flesta av de filer du kan stöta på:

Konfigurationsfil Rekommenderad åtgärd
/etc/issue Behåll, svara N
/etc/issue.net Behåll, svara N
/etc/security/limits.conf Behåll, svara N
/etc/login.defs Behåll, svara N
/etc/shibboleth/shibboleth2.xml Behåll, svara N
/etc/shibboleth/shibd.logger Tillämpa ändringarna, svara Y
/etc/default/ntpsec Tillämpa ändringarna, svara Y
/etc/snmp/snmpd.conf Tillämpa ändringarna, svara Y
/etc/logrotate.d/IPdivaServer Tillämpa ändringarna, svara Y
/etc/ssh/sshd_config Behåll, svara Keep the local version currently installed
/etc/ssh/ssh_config Tillämpa ändringarna, svara Y
/etc/apache2/ports.conf Behåll, svara N
/etc/init.d/apache2 Behåll, svara N
/etc/modsecurity/modsecurity.conf-recommended Tillämpa ändringarna, svara Y
/etc/ipdiva/httpd/commonParameters.conf Tillämpa ändringarna, svara Y
/etc/ipdiva/care/djangosettings.ini Tillämpa ändringarna, svara Y
/etc/crontab Tillämpa ändringarna, svara Y
/etc/openssl.cnf Tillämpa ändringarna, svara Y
/etc/audit/rules.d/audit.rules Behåll, svara N
/etc/pam.d/su Behåll, svara N
/etc/sysctl.conf Behåll, svara N

Godkänn konfigurationsmeddelandet för paketet glibc:

Godkänn den automatiska omstarten av tjänsterna:

När uppgraderingen är klar kör du följande kommandon för att aktivera collectd igen, ta bort de paket som inte behövs och starta om maskinen:

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

Specifika åtgärder för Mediation Controller i Cluster

Kör följande kommandon på Mediation Controller-servern SLAVE för att synkronisera om den hemlighet som delas mellan Mediation Controller MASTER och SLAVE:

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

Versionsuppgradering av PostgreSQL-databasinstansen

Uppdatera PostgreSQL-databasinstansen från version 13 till version 15 på Mediation Controller-servern. Kör för detta följande anvisningar med lämpliga root-rättigheter.

Kontrollera statusen för PostgreSQL-instanserna före migreringen:

1
pg_lsclusters

Kör följande kommandon för att uppdatera databasinstansen till PostgreSQL version 15:

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

Kontrollera att databasinstansen har uppgraderats korrekt. Två instanser ska visas, en i version 13 och en i version 15, där den senare är den enda aktiva. Kontrollen görs med följande kommando:

1
pg_lsclusters

Om versionsuppgraderingen lyckades kan databasinstansen i version 13 tas bort:

1
pg_dropcluster 13 main

Borttagningen av PostgreSQL-paketen i version 13 kan startas:

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

Migrering av databasen i CyberElements Bastion

Produktens konfiguration lagras i databasen, som måste migreras för att kunna innehålla inställningarna för de ändringar som den nya versionen inför. Åtgärden utförs på Mediation Controller som root.

Cluster-arkitektur

Vid en Cluster-arkitektur ska åtgärden utföras från en enda Mediation Controller, oavsett vilken.

Följande kommando måste också köras:

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

Migreringen av data utlöses med ett kommando som motsvarar detta:

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

Här måste <org_clr> ersättas med namnet på den organisation som ska migreras. Observera att om Mediation Controller har flera organisationer (multi-tenant) måste du köra kommandot lika många gånger som det finns organisationer att migrera.

Exempel

För en CyberElements Bastion-plattform som har organisationerna systancia och systancia-test måste du köra följande kommandon:

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

Efter migreringen av databasen måste tjänsten Apache2 startas om:

1
systemctl restart apache2

Återställa konfigurationerna

Vissa konfigurationer skrevs över under versionsuppgraderingen och måste återställas.

Filen commonParameters.conf:

Flytta de <Location>-taggar som rör HTML5 Gateways, och som vanligtvis finns i slutet av filen, från filen /etc/ipdiva/httpd/commonParameters.conf.dpkg-old till /etc/ipdiva/httpd/commonParameters.extra.conf (skapa filen om den inte finns). Om ingen <Location>-tagg finns kan följande exempel kopieras.

 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>

Filen djangosettings.ini:

Kopiera informationen från rad 2 ”allowed_hosts” i filen /etc/ipdiva/care/djangosettings.ini.dpkg-old till filen /etc/ipdiva/care/djangosettings.ini. Detta kan automatiseras med följande kommando som root:

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

Tillämpa återställningarna:

För att tillämpa återställningarna krävs en omstart av tjänsten Apache2 som root:

1
systemctl restart apache2

Validering

När versionsuppgraderingen är slutförd måste infrastrukturen CyberElements Bastion valideras för att säkerställa att den fungerar korrekt innan den åter tas i produktion. Om valideringen misslyckas bör du överväga en återgång genom att återställa backuperna av CyberElements Bastion-servrarna.

Öppna administratörsgränssnittet för en organisation och därefter menyn ”About” i kontrollfältet för att kontrollera att versionen av Mediation Controller har uppgraderats korrekt till 4.6.

De första testerna av plattformens funktion kan startas, men vi rekommenderar version 4.6 av Edge Gateway för att säkerställa optimal prestanda för applikationerna i CyberElements Bastion.