Gå til innhold

Oppgradering av Mediation Controller i drift

Viktig

Dokumentasjonen for oppgradering av Mediation Controller i drift gjelder alle Mediation Controller som kjører Debian 11. Debian-versjonen kan kontrolleres med følgende kommando (kjøres via SSH eller konsolltilgang):

1
cat /etc/debian_version

Informasjon

Som en påminnelse: bytte til root på Debian-maskinene må gjøres med følgende kommando:

1
su -

Planlegging og forberedelse

Åpning av nettverksflyter

Ved oppgradering av produktet må mange pakker lastes ned fra Debian-repositoryene på grunn av overgangen fra Debian versjon 11 til 12. Tilgang via TCP 80 til security.debian.org og ftp.fr.debian.org må være åpnet.

For å teste åpningen av flytene på maskinen kan du starte en synkronisering av Debian-repositoryene. Hvis det vises feilmeldinger om tilgang til Debian-repositoryene, er ikke nettverksflyten åpen, sannsynligvis blokkert av bedriftens brannmur. Synkronisering av repositoryene kan startes med følgende kommando:

1
apt update

Nedlasting av speilet og de nødvendige verktøyene

Speilet for CyberElements Cleanroom 4.6 kan lastes ned fra denne lenken (krever at det opprettes en kundekonto): Systancia Marketplace

I tillegg til speilet vil det være behov for tredjepartsverktøy under oppgraderingen:

  • En SSH-klient (på Windows kan verktøyet PuTTY brukes)
  • En SCP-klient (på Windows kan verktøyene WinSCP eller FileZilla brukes)

Installasjon og bruk av verktøyet screen

Verktøyet screen gjør det mulig å åpne flere shell-terminaler i ett enkelt konsoll. Det er avgjørende å bruke dette verktøyet for å oppgradere til versjonen CyberElements Bastion, for å fjerne avhengigheten av at nettverkstilkoblingen er stabil. Uten verktøyet screen ville installasjonen nemlig bli avbrutt hvis SSH-tilkoblingen til CyberElements Bastion-serverne brytes.

Ved å bruke verktøyet screen kan du, når du kobler deg til shell-konsollet på CyberElements Bastion-utstyret på nytt, hente fram terminalen der oppdateringsprosessen ble kjørt.

Pakken screen bør installeres med følgende kommandolinje:

1
apt install --no-install-recommends screen

For å åpne en ny screen-terminal må følgende kommando kjøres:

1
screen -S <ID>

Erstatt <ID> med et navn som identifiserer økten.

Eksempel

Ved versjonsoppgraderinger av CyberElements er identifikatoren cye-upgrade lett å kjenne igjen. Kommandoen vil da være som følger:

1
screen -S cye-upgrade

For å hente fram en terminal som er åpnet med screen, er det nok å kjøre følgende kommando:

1
screen -r <ID>

Erstatt <ID> med navnet som ble definert da økten ble åpnet.

Eksempel

Terminalen som tidligere ble åpnet med identifikatoren cye-upgrade, kan hentes fram med følgende kommando:

1
screen -r cye-upgrade

For å lukke terminalen når oppgraderingen er fullført, skriver du kommandoen exit eller tastekombinasjonen ctrl+d i terminalen.

Du kommer dermed tilbake til konsollet. Meldingen ”screen is terminating” bekrefter at terminalen er lukket.

Utvidelse av diskplassen for de virtuelle appliancene

For virtuelle appliancer med Systancia Cleanroom 4.4 eller 4.5 må det legges til en diskutvidelse på 2 GB på partisjonen /usr. Denne operasjonen er nødvendig for å ha nok diskplass til oppgraderingen og for å unngå å bli stående fast underveis.

Når du kobler til Mediation Controller, enten via SSH eller i konsollmodus, informerer en velkomstmelding deg om at du er koblet til en Systancia-maskin. En ekstra linje angir versjonen til appliancen.

Eksempel

En virtuell Mediation Controller-appliance med versjon 4.5 gir følgende 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

Hvis maskinen ikke er en virtuell appliance som ble levert med versjon 4.4 eller 4.5, kan dette kapittelet hoppes over for å gå videre til oppgraderingen.

Sikkerhetskopi anbefales sterkt

De følgende trinnene endrer partisjoneringen av disken til Mediation Controller. Hvis det er gjort manuelle endringer, er de følgende instruksjonene kanskje ikke egnet, og maskinen kan bli blokkert.

Før du fortsetter, må du sikkerhetskopiere maskinen eller om nødvendig duplisere den virtuelle maskinen. Snapshots kan ikke brukes, siden de, særlig med VMware, blokkerer muligheten til å utvide en disk.

På hypervisornivå utvider du diskplassen til den virtuelle maskinen med ytterligere 2 GB. Hvis det ikke er mulig å utvide disken, kontrollerer du at det ikke finnes noen snapshots, og hvis ikke, slår du av den virtuelle maskinen dersom utvidelse i drift ikke støttes.

Når diskplassen er utvidet på nivå med den virtuelle maskinen, er følgende kommandoer, som skal kjøres som root, nødvendige for å utvide partisjonen /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

Oppgradering

Oppdatering av Debian-pakkene

Siden oppgradering av CyberElements Bastion krever en oppgradering av Debian, anbefales det å oppdatere Debian 11-pakkene ordentlig før du bytter til Debian 12. Kjør følgende kommandoer som root for å gjøre det (systemoppdatering og deretter fjerning av unødvendige pakker):

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

Det kan vises meldinger som ber deg om å endre konfigurasjonen i flere konfigurasjonsfiler. Velg i disse tilfellene alternativet for å beholde den nåværende konfigurasjonen.

Forberede Microsoft SQL Server-driverne

Ytterligere trinn kreves hvis Microsoft SQL Server-driverne er installert (det er tilfellet på de virtuelle appliancene som Systancia leverer).
For å kontrollere om de finnes på serveren, kan følgende kommando kjøres som root:

1
apt list --installed ms*

Hvis det ikke vises noe svar, er ikke driverne installert, og du kan gå videre til trinnet med forberedelse av speilet.
Ellers, hvis driverne er installert, skal to pakker være oppført: msodbcsql17 og mssql-tools. Følg instruksjonene i denne delen.

Eksempler

En server der driverne ikke er installert, ville gitt følgende resultat med den forrige kommandoen:

1
Listing... Done

En server der driverne er installert, gir et resultat som dette (versjonene av pakkene kan avvike):

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 følgende kommandoene er nødvendige for å installere en bestemt versjon av pakkene, slik at oppgraderingen lykkes:

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

Konfigurer Microsoft-repositoryet som er tilpasset Debian 12, for å forberede oppgraderingen:

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

Forberedelse av speilet for CyberElements Cleanroom 4.6

Speilet som ble hentet i forberedelsesfasen (filen med filendelsen tgz), må sendes til serveren via SCP. Det skal legges i katalogen /tmp/.

Deretter forbereder du speilet ved å kjøre følgende kommandoer som root (restfiler fra en tidligere versjonsoppgradering blir slettet):

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

Konfigurasjon av APT

Pakkebehandleren APT er konfigurert for å hente Debian 11-pakker; den må konfigureres på nytt for å hente Debian 12-pakker. Det er også nødvendig å oppdatere referansen til det lokale CyberElements Bastion-speilet. Kjør følgende kommandoer som root for å gjøre 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 over konfigurasjonen av de nye repositoryene anbefaler vi på det sterkeste å bruke følgende innstilling for å instruere APT om ikke å installere anbefalte avhengigheter som ikke er strengt nødvendige, slik at antallet installerte komponenter reduseres. Følgende kommando bruker denne innstillingen somroot:

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

Til slutt er det nødvendig å oppdatere listen over pakker i repositoryene med følgende kommando:

1
apt update

Utløse versjonsoppgraderingen

Koble til Mediation Controller-serveren via SSH og bytt til root, og åpne deretter et screen som angitt ovenfor.

Begynn med å oppdatere visse spesifikke pakker, slik at versjonsoppgraderingen kan utføres. Det er forventet en feilmelding når den første kommandoen kjøres, men feilen rettes med den andre kommandoen:

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 oppgraderes fra Debian 11 til Debian 12, oppdateres pakken collectd, og den blir inkompatibel med konfigurasjonsfilen som CyberElements Bastion genererer (/etc/collectd/collectd.conf). Dette kan gi en feil under oppdateringen.

Deaktiver collectd for å unngå dette:

1
2
systemctl stop collectd 
systemctl disable collectd

Deretter kan oppgraderingen startes med følgende kommando:

1
apt dist-upgrade -y

Under oppgraderingen får du flere spørsmål om konfigurasjonsfilene skal beholdes og oppdateres i henhold til standardkonfigurasjonen for Debian 12, eller om den spesifikke konfigurasjonen som finnes, skal beholdes. Her er anbefalingene våre for de fleste filene du kan komme over:

Konfigurasjonsfil Anbefalt handling
/etc/issue Beholdes, svar N
/etc/issue.net Beholdes, svar N
/etc/security/limits.conf Beholdes, svar N
/etc/login.defs Beholdes, svar N
/etc/shibboleth/shibboleth2.xml Beholdes, svar N
/etc/shibboleth/shibd.logger Bruk endringene, svar Y
/etc/default/ntpsec Bruk endringene, svar Y
/etc/snmp/snmpd.conf Bruk endringene, svar Y
/etc/logrotate.d/IPdivaServer Bruk endringene, svar Y
/etc/ssh/sshd_config Beholdes, svar Keep the local version currently installed
/etc/ssh/ssh_config Bruk endringene, svar Y
/etc/apache2/ports.conf Beholdes, svar N
/etc/init.d/apache2 Beholdes, svar N
/etc/modsecurity/modsecurity.conf-recommended Bruk endringene, svar Y
/etc/ipdiva/httpd/commonParameters.conf Bruk endringene, svar Y
/etc/ipdiva/care/djangosettings.ini Bruk endringene, svar Y
/etc/crontab Bruk endringene, svar Y
/etc/openssl.cnf Bruk endringene, svar Y
/etc/audit/rules.d/audit.rules Beholdes, svar N
/etc/pam.d/su Beholdes, svar N
/etc/sysctl.conf Beholdes, svar N

Godta konfigurasjonsmeldingen for pakken glibc:

Godta automatisk omstart av tjenestene:

Når oppgraderingen er fullført, kjører du følgende kommandoer for å aktivere collectd på nytt, fjerne unødvendige pakker og starte maskinen på nytt:

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

Handlinger som er spesifikke for Mediation Controller i Cluster

På Mediation Controller-serveren SLAVE kjører du følgende kommandoer for å synkronisere hemmeligheten som deles mellom Mediation Controller MASTER og SLAVE, på nytt:

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

Oppgradering av PostgreSQL-databaseinstansen

På Mediation Controller-serveren oppdaterer du PostgreSQL-databaseinstansen fra versjon 13 til versjon 15. Kjør de følgende instruksjonene med de nødvendige root-rettighetene for å gjøre det.

Kontroller statusen til PostgreSQL-instansene før migreringen:

1
pg_lsclusters

Kjør følgende kommandoer for å oppdatere databaseinstansen til PostgreSQL versjon 15:

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

Kontroller at databaseinstansen er oppdatert korrekt. Det skal vises to instanser, én i versjon 13 og én i versjon 15, som er den eneste aktive. Kontrollen utføres med følgende kommando:

1
pg_lsclusters

Hvis oppgraderingen lyktes, kan databaseinstansen i versjon 13 slettes:

1
pg_dropcluster 13 main

Slettingen av PostgreSQL-pakkene i versjon 13 kan startes:

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

Migrering av databasen til CyberElements Bastion

Konfigurasjonen av produktet lagres i databasen, som må migreres for at den skal kunne inneholde konfigurasjonene for endringene som den nye versjonen innfører. Operasjonen utføres på Mediation Controller som root.

Cluster-arkitektur

For en Cluster-arkitektur er det nødvendig å utføre operasjonen fra bare én Mediation Controller, uansett hvilken.

Det er også nødvendig å kjøre følgende kommando:

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

Migreringen av dataene utløses med en kommando som tilsvarer denne:

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

Der <org_clr> må erstattes med navnet på organisasjonen som skal migreres. Merk at hvis Mediation Controller har flere organisasjoner (multi-tenant), må du kjøre kommandoen så mange ganger som det er organisasjoner å migrere.

Eksempel

For en CyberElements Bastion-plattform som har organisasjonene systancia og systancia-test, må du kjøre følgende kommandoer:

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

Etter migreringen av databasen må Apache2-tjenesten startes på nytt:

1
systemctl restart apache2

Gjenoppretting av konfigurasjonene

Noen konfigurasjoner ble overskrevet under oppgraderingen og må gjenopprettes.

Filen commonParameters.conf:

Flytt <Location>-taggene som gjelder HTML5 Gateway-ene, og som vanligvis ligger på slutten av filen, fra filen /etc/ipdiva/httpd/commonParameters.conf.dpkg-old til /etc/ipdiva/httpd/commonParameters.extra.conf (opprett filen hvis den ikke finnes). Hvis det ikke finnes noen <Location>-tagger, kan de følgende eksemplene kopieres.

 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:

Kopier informasjonen fra linje 2 ”allowed_hosts” i filen /etc/ipdiva/care/djangosettings.ini.dpkg-old til filen /etc/ipdiva/care/djangosettings.ini. Dette kan automatiseres med følgende kommando som root:

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

Ta i bruk gjenopprettingene:

For å ta i bruk gjenopprettingene er det nødvendig å starte Apache2-tjenesten på nytt som root:

1
systemctl restart apache2

Validering

Når oppgraderingen er fullført, må CyberElements Bastion-infrastrukturen valideres for å sikre at den fungerer korrekt, før den settes tilbake i produksjon. Hvis valideringen mislykkes, bør du vurdere en tilbakerulling ved å gjenopprette sikkerhetskopiene av CyberElements Bastion-serverne.

Gå til administratorgrensesnittet for en organisasjon, og deretter til menyen ”About” i kontrollinjen for å kontrollere at versjonen til Mediation Controller er oppgradert korrekt til 4.6.

De første testene av hvordan plattformen fungerer, kan startes, men vi anbefaler versjon 4.6 av Edge Gateway for å sikre optimal ytelse for CyberElements Bastion-applikasjonene.