Sari la conținut

Upgrade la cald al Mediation Controller

Important

Documentația privind upgrade-ul la cald al Mediation Controller se adresează oricărui Mediation Controller care funcționează cu Debian 11. Versiunea de Debian poate fi verificată cu următoarea comandă (de executat prin SSH sau în acces consolă):

1
cat /etc/debian_version

Informație

Vă amintim că trecerea la root pe mașinile Debian trebuie efectuată cu următoarea comandă:

1
su -

Planificare și pregătire

Deschiderea fluxurilor

La upgrade-ul produsului, numeroase pachete trebuie descărcate din repository-urile Debian, din cauza trecerii de la versiunea Debian 11 la 12. Accesul TCP 80 către security.debian.org și ftp.fr.debian.org trebuie deschis.

Pentru a testa deschiderea fluxurilor pe mașină, se poate lansa o sincronizare a repository-urilor Debian. Dacă se afișează mesaje de eroare privind accesul la repository-urile Debian, atunci fluxul de rețea nu este deschis, fiind probabil blocat de firewall-ul companiei. Sincronizarea repository-urilor poate fi inițiată cu următoarea comandă:

1
apt update

Descărcarea mirrorului și a instrumentelor necesare

Mirrorul CyberElements Cleanroom 4.6 poate fi descărcat de la acest link (necesită crearea unui cont de client): Systancia Marketplace

În plus față de mirror, pentru procesul de upgrade vor fi necesare instrumente terțe:

  • Un client SSH (pe Windows poate fi utilizat instrumentul PuTTY)
  • Un client SCP (pe Windows pot fi utilizate instrumentele WinSCP sau FileZilla)

Instalarea și utilizarea instrumentului screen

Instrumentul screen permite deschiderea mai multor terminale shell într-o singură consolă. Utilizarea acestui instrument este indispensabilă pentru upgrade-ul la versiunea CyberElements Bastion, pentru a elimina dependența de stabilitatea conectivității de rețea. Într-adevăr, fără instrumentul screen, instalarea ar fi oprită în cazul întreruperii conectivității SSH cu serverele CyberElements Bastion.

Prin utilizarea instrumentului screen, la reconectarea la consola shell a echipamentelor CyberElements Bastion, se poate recupera terminalul în care a fost executat procesul de actualizare.

Pachetul screen ar trebui instalat cu următoarea linie de comandă:

1
apt install --no-install-recommends screen

Pentru a deschide un nou terminal screen, trebuie executată următoarea comandă:

1
screen -S <ID>

Înlocuiți <ID> cu un nume care identifică sesiunea.

Exemplu

Pentru upgrade-urile de versiune CyberElements, identificatorul cye-upgrade este ușor de recunoscut. Comanda ar fi deci următoarea:

1
screen -S cye-upgrade

Pentru a recupera un terminal deschis cu screen, este suficient să executați următoarea comandă:

1
screen -r <ID>

Înlocuiți <ID> cu numele definit la deschiderea sesiunii.

Exemplu

Terminalul deschis anterior cu identificatorul cye-upgrade poate fi recuperat cu următoarea comandă:

1
screen -r cye-upgrade

Pentru a închide terminalul după finalizarea upgrade-ului, introduceți în terminal comanda exit sau combinația de taste ctrl+d.

Astfel veți reveni la consolă. Mesajul „screen is terminating” confirmă că terminalul a fost închis.

Extinderea spațiului pe disc al appliance-urilor virtuale

Appliance-urile virtuale Systancia Cleanroom 4.4 sau 4.5 necesită adăugarea unei extinderi de disc de 2 GB la partiția /usr. Această operațiune este necesară pentru a dispune de spațiu suficient pe disc pentru upgrade și pentru a evita blocarea în timpul operațiunii.

La conectarea la Mediation Controller, fie prin SSH, fie în mod consolă, un mesaj de bun venit vă informează că sunteți conectat la o mașină Systancia. O linie suplimentară indică versiunea appliance-ului.

Exemplu

Un appliance virtual Mediation Controller în versiunea 4.5 va da următorul rezultat:

 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

Dacă mașina nu este un appliance virtual furnizat cu versiunea 4.4 sau 4.5, acest capitol poate fi omis pentru a trece direct la upgrade.

Copie de siguranță recomandată insistent

Etapele următoare modifică partiționarea discului Mediation Controller. Dacă au fost efectuate modificări manuale, este posibil ca aceste instrucțiuni să nu fie adecvate, ceea ce ar duce la blocarea mașinii.

Înainte de a continua, realizați o copie de siguranță a mașinii sau, dacă este necesar, duplicați mașina virtuală. Instantaneele nu pot fi utilizate deoarece, în special cu VMware, împiedică extinderea unui disc.

La nivelul hipervizorului, extindeți cu 2 GB suplimentari spațiul pe disc al mașinii virtuale. Dacă extinderea discului nu este posibilă, verificați să nu existe instantanee și, în caz contrar, opriți mașina virtuală dacă extinderea la cald nu este suportată.

Odată extins spațiul pe disc la nivelul mașinii virtuale, sunt necesare următoarele comenzi, de executat ca root, pentru a extinde partiția /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

Upgrade

Actualizarea pachetelor Debian

Deoarece upgrade-ul CyberElements Bastion necesită un upgrade al Debian, se recomandă să actualizați corect pachetele Debian 11 înainte de a trece la Debian 12. Pentru aceasta, executați următoarele comenzi ca root (actualizarea sistemului, apoi eliminarea pachetelor inutile):

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

Pot apărea mesaje care vă cer să modificați configurarea mai multor fișiere de configurare. În aceste cazuri, selectați opțiunea de păstrare a configurării actuale.

Pregătirea driverelor Microsoft SQL Server

Sunt necesare operațiuni suplimentare dacă driverele Microsoft SQL Server sunt instalate (este cazul appliance-urilor virtuale furnizate de Systancia).
Pentru a verifica dacă sunt prezente pe server, se poate executa următoarea comandă ca root:

1
apt list --installed ms*

Dacă nu apare niciun răspuns, atunci driverele nu sunt instalate și puteți trece la etapa de pregătire a oglinzii.
În caz contrar, dacă driverele sunt instalate, ar trebui să apară două pachete: msodbcsql17 și mssql-tools. Urmați instrucțiunile din această secțiune.

Exemple

Un server pe care driverele nu sunt instalate ar da următorul rezultat la comanda anterioară:

1
Listing... Done

Un server pe care driverele sunt instalate va da un rezultat similar cu acesta (versiunile pachetelor pot diferi):

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]

Următoarele comenzi sunt necesare pentru a instala o versiune anume a pachetelor, astfel încât upgrade-ul să se desfășoare cu succes:

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

Configurați repository-ul Microsoft adaptat pentru Debian 12 pentru a pregăti upgrade-ul:

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

Pregătirea mirrorului CyberElements Cleanroom 4.6

Mirrorul recuperat în faza de pregătire (fișier cu extensia tgz) trebuie trimis către server prin SCP. Trebuie plasat în directorul /tmp/.

În continuare, pregătiți mirrorul executând următoarele comenzi ca root (fișierele reziduale de la un upgrade de versiune anterior vor fi șterse):

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

Configurarea APT

Managerul de pachete APT este configurat pentru a obține pachetele Debian 11; trebuie reconfigurat pentru a obține pachetele Debian 12. Este de asemenea necesar să actualizați referința la oglinda locală CyberElements Bastion. Pentru aceasta, executați următoarele comenzi ca 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

În plus față de configurarea noilor repository-uri, vă recomandăm insistent să aplicați următoarea setare pentru a indica APT să nu instaleze dependențele recomandate care nu sunt strict necesare, în scopul reducerii numărului de componente instalate. Următoarea comandă aplică această setare caroot:

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

În sfârșit, este necesar să actualizați lista pachetelor din repository-uri cu următoarea comandă:

1
apt update

Declanșarea upgrade-ului de versiune

Accesați prin SSH serverul Mediation Controller și treceți la root, apoi deschideți un screen așa cum s-a indicat mai sus.

Începeți prin a actualiza anumite pachete specifice, pentru ca upgrade-ul de versiune să poată fi efectuat. Este de așteptat un mesaj de eroare la executarea primei comenzi, dar eroarea va fi corectată de a doua comandă:

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

La upgrade-ul unui Mediation Controller de la Debian 11 la Debian 12, pachetul collectd este actualizat și devine incompatibil cu fișierul de configurare generat de CyberElements Bastion (/etc/collectd/collectd.conf). Acest lucru poate genera o eroare în timpul actualizării.

Pentru a evita acest lucru, dezactivați collectd:

1
2
systemctl stop collectd 
systemctl disable collectd

În continuare, upgrade-ul poate fi inițiat cu următoarea comandă:

1
apt dist-upgrade -y

În timpul upgrade-ului, vi se vor pune mai multe întrebări privind păstrarea fișierelor de configurare și actualizarea lor conform configurării standard Debian 12, sau menținerea configurării specifice existente. Iată recomandările noastre pentru majoritatea fișierelor pe care le puteți întâlni:

Fișier de configurare Acțiune recomandată
/etc/issue De păstrat, răspundeți N
/etc/issue.net De păstrat, răspundeți N
/etc/security/limits.conf De păstrat, răspundeți N
/etc/login.defs De păstrat, răspundeți N
/etc/shibboleth/shibboleth2.xml De păstrat, răspundeți N
/etc/shibboleth/shibd.logger Aplicați modificările, răspundeți Y
/etc/default/ntpsec Aplicați modificările, răspundeți Y
/etc/snmp/snmpd.conf Aplicați modificările, răspundeți Y
/etc/logrotate.d/IPdivaServer Aplicați modificările, răspundeți Y
/etc/ssh/sshd_config De păstrat, răspundeți Keep the local version currently installed
/etc/ssh/ssh_config Aplicați modificările, răspundeți Y
/etc/apache2/ports.conf De păstrat, răspundeți N
/etc/init.d/apache2 De păstrat, răspundeți N
/etc/modsecurity/modsecurity.conf-recommended Aplicați modificările, răspundeți Y
/etc/ipdiva/httpd/commonParameters.conf Aplicați modificările, răspundeți Y
/etc/ipdiva/care/djangosettings.ini Aplicați modificările, răspundeți Y
/etc/crontab Aplicați modificările, răspundeți Y
/etc/openssl.cnf Aplicați modificările, răspundeți Y
/etc/audit/rules.d/audit.rules De păstrat, răspundeți N
/etc/pam.d/su De păstrat, răspundeți N
/etc/sysctl.conf De păstrat, răspundeți N

Acceptați mesajul de configurare al pachetului glibc:

Acceptați repornirea automată a serviciilor:

Odată upgrade-ul finalizat, executați următoarele comenzi pentru a reactiva collectd, a elimina pachetele inutile și a reporni mașina:

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

Acțiuni specifice pentru Mediation Controller-ele în Cluster

Pe serverul Mediation Controller SLAVE, executați următoarele comenzi pentru a resincroniza secretul partajat între Mediation Controller MASTER și SLAVE:

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

Upgrade-ul instanței de bază de date PostgreSQL

Pe serverul Mediation Controller, actualizați instanța de bază de date PostgreSQL de la versiunea 13 la versiunea 15. În acest scop, executați instrucțiunile următoare cu drepturile root adecvate.

Verificați starea instanțelor PostgreSQL înainte de migrare:

1
pg_lsclusters

Executați următoarele comenzi pentru a actualiza instanța de bază de date la versiunea 15 de PostgreSQL:

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

Verificați dacă instanța de bază de date a beneficiat cu succes de upgrade. Trebuie să apară două instanțe, una în versiunea 13 și cealaltă în versiunea 15, aceasta din urmă fiind singura activă. Verificarea se face cu următoarea comandă:

1
pg_lsclusters

Dacă upgrade-ul s-a realizat cu succes, instanța de bază de date în versiunea 13 poate fi ștearsă:

1
pg_dropcluster 13 main

Se poate iniția ștergerea pachetelor PostgreSQL din versiunea 13:

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

Migrarea bazei de date CyberElements Bastion

Configurarea produsului este stocată în baza de date, care trebuie migrată pentru a putea conține setările modificărilor aduse de noua versiune. Operațiunea se efectuează pe Mediation Controller ca root.

Arhitectură Cluster

Într-o arhitectură Cluster, operațiunea trebuie efectuată de pe un singur Mediation Controller, indiferent care.

Este de asemenea necesar să executați următoarea comandă:

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

Migrarea datelor se declanșează cu o comandă echivalentă cu aceasta:

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

Unde <org_clr> trebuie înlocuit cu numele organizației care urmează să fie migrată. Rețineți că, dacă Mediation Controller are mai multe organizații (multi-tenant), atunci va trebui să executați comanda de tot atâtea ori câte organizații trebuie migrate.

Exemplu

Pentru o platformă CyberElements Bastion care are organizațiile systancia și systancia-test, va trebui să executați următoarele comenzi:

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

În urma migrării bazei de date, serviciul Apache2 trebuie repornit:

1
systemctl restart apache2

Restaurarea configurărilor

Unele configurări au fost suprascrise în timpul procesului de upgrade și trebuie restaurate.

Fișierul commonParameters.conf:

Mutați etichetele <Location> referitoare la HTML5 Gateway-uri, care se află de obicei la sfârșitul fișierului, din fișierul /etc/ipdiva/httpd/commonParameters.conf.dpkg-old în /etc/ipdiva/httpd/commonParameters.extra.conf (creați fișierul dacă nu există). Dacă nu este prezentă nicio etichetă <Location>, pot fi copiate exemplele următoare.

 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>

Fișierul djangosettings.ini:

Copiați informațiile din linia 2 „allowed_hosts” a fișierului /etc/ipdiva/care/djangosettings.ini.dpkg-old în fișierul /etc/ipdiva/care/djangosettings.ini. Acest lucru poate fi automatizat cu următoarea comandă, executată ca root:

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

Aplicarea restaurărilor:

Pentru a aplica restaurările, este necesară o repornire a serviciului Apache2 ca root:

1
systemctl restart apache2

Validare

Odată upgrade-ul finalizat, infrastructura CyberElements Bastion trebuie validată pentru a vă asigura că funcționează corect înainte de revenirea în producție. Dacă validarea eșuează, luați în considerare o revenire prin restaurarea copiilor de siguranță ale serverelor CyberElements Bastion.

Accesați interfața de administrare a unei organizații, apoi mergeți la meniul „About” din bara de control pentru a verifica dacă versiunea Mediation Controller a fost actualizată cu succes la 4.6.

Primele teste de funcționare a platformei pot fi inițiate, dar recomandăm utilizarea versiunii 4.6 a Edge Gateway pentru a garanta o performanță optimă a aplicațiilor CyberElements Bastion.