Vai al contenuto

Aggiornamento dal vivo del Mediation Controller

Important

La documentazione per l'aggiornamento in tempo reale del Mediation Controller è destinata a qualsiasi Mediation Controller che esegue Debian 11. La versione Debian può essere controllata utilizzando il seguente comando (da eseguire in SSH o con l'accesso console):

1
cat /etc/debian_version

Info

Come promemoria, il passaggio a Debian come root sulle macchine deve essere eseguito utilizzando il seguente comando:

1
su -

Pianificazione e preparazione

Flussi di apertura

Quando si aggiorna il prodotto, molti pacchetti devono essere scaricati dai repository Debian a causa del passaggio dalla versione Debian 11 a 12. TCP 80 l'accesso deve essere aperto a security.debian.org e ftp.fr.debian.org.

Per testare l'apertura dei flussi sulla macchina, è possibile avviare una sincronizzazione dei repository Debian. Se vengono visualizzati messaggi di errore relativi all'accesso ai repository Debian, il flusso di rete non è aperto, probabilmente bloccato dal firewall aziendale. La sincronizzazione dei repository può essere avviata con il seguente comando:

1
apt update

Scaricare lo specchio e gli strumenti necessari

Il mirror cyberelements Cleanroom 4.6 può essere scaricato da questo link (richiede la creazione di un account cliente): Systancia Marketplace

Oltre allo specchio, per il processo di aggiornamento saranno necessari strumenti di terze parti:

  • Un client SSH (su Windows, lo strumento PuTTY può essere utilizzato)
  • Un client SCP (su Windows, il WinSCP o FileZilla possono essere utilizzati degli strumenti)

Installazione e utilizzo dello strumento di schermo

Lo strumento screen consente di aprire più terminali di shell in una singola console. È essenziale utilizzare questo strumento per l'aggiornamento alla versione cyberelements Cleanroom, al fine di rimuovere la dipendenza dalla stabilità della connettività di rete. In effetti, senza l'utilizzo dello strumento di schermo, l'installazione sarebbe interrotta in caso di interruzione della connettività SSH con i server Systancia Cleanroom.

Utilizzando lo strumento screen, quando si ricollega alla console shell dell'apparecchiatura cyberelements Cleanroom, è possibile recuperare il terminale in cui è stato eseguito il processo di aggiornamento.

Il pacchetto schermo deve essere installato utilizzando la seguente riga di comando:

1
apt install --no-install-recommends screen

Per aprire un nuovo terminale screen, è necessario eseguire il seguente comando:

1
screen -S <ID>

Sostituire <ID> con un nome che identifica la sessione.

Esempio

Per gli aggiornamenti di versione cyberelements, il cye-upgradedentifier è facilmente identificabile. Il comando sarebbe quindi il seguente:

1
screen -S cye-upgrade

Per recuperare un terminale aperto da screen, eseguire il seguente comando:

1
screen -r <ID>

Sostituire <ID> con il nome definito quando la sessione è stata aperta.

Esempio

Il terminale precedentemente aperto con l'identificatore cye-upgrade può essere recuperato con il seguente comando:

1
screen -r cye-upgrade

Per chiudere il terminale una volta completato l'aggiornamento, inserire il comando exit o la scorciatoia tastiera ctrl+d nel terminale.

Estensione dello spazio su disco per apparecchi virtuali

Sustanzia Cleanroom 4.4 o 4.5 apparecchi virtuali richiedono un' estensione del disco da 2 GB da aggiungere al /usr Questa operazione è necessaria per avere spazio su disco sufficiente per l'aggiornamento ed evitare di rimanere bloccati durante l'operazione.

Quando si collega alla Mediation Controller, sia tramite SSH che in modalità console, un messaggio di benvenuto vi informa che siete connessi a una macchina Systancia.

Esempio

Un Mediation Controller apparecchio virtuale con la versione 4.5 darà il seguente risultato:

 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

Se la macchina non è un apparecchio virtuale fornito con la versione 4.4 o 4.5, questo capitolo può essere saltato per procedere con l'aggiornamento .

Backup fortemente raccomandato

Le seguenti operazioni effettueranno modifiche alla partizione del disco del Mediation Controller. Se sono state apportate modifiche manuali, le seguenti istruzioni potrebbero non essere adatte, con conseguente blocco della macchina.

Prima di procedere, si prega di eseguire il backup della macchina o, se necessario, duplicare la macchina virtuale.

A livello di ipervisore, estendere lo spazio su disco della macchina virtuale di ulteriori 2 GB. Se non è possibile estendere il disco, verificare che non ci siano istantanee e, in caso contrario, spegnere la macchina virtuale se l'estensione in tempo reale non è supportata.

Una volta che lo spazio su disco è stato esteso a livello di macchina virtuale, sono necessari i seguenti comandi, da eseguire come root, per estendere la partizione /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

Aggiornamento

Aggiornamento dei pacchetti Debian

Poiché l'aggiornamento cyberelements Cleanroom richiede l'aggiornamento di Debian, si consiglia di aggiornare correttamente i pacchetti Debian 11 prima di passare a Debian 12. Per fare questo, eseguire i seguenti comandi come root (aggiornamento del sistema quindi rimozione dei pacchetti non necessari):

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

Potrebbero apparire messaggi che richiedono di modificare la configurazione di diversi file di configurazione. In questi casi, selezionare l'opzione per mantenere la configurazione corrente.

Preparazione dei driver di Microsoft SQL Server

Se sono installati i driver di Microsoft SQL Server (come nel caso delle appliance virtuali fornite da Systancia), sono necessari ulteriori passaggi.
Per verificare se sono presenti sul server, è possibile eseguire il seguente comando come root:

1
apt list --installed ms*

Se non appare alcuna risposta, allora i driver non sono installati e si può procedere a la fase di preparazione dello specchio.
In caso contrario, se i driver sono installati, devono essere elencati due pacchetti: msodbcsql17 e mssql-tools. Seguire le istruzioni di questa sezione.

Esempio

Un server su cui i driver non sono installati avrebbe il seguente risultato dal comando precedente:

1
Listing... Done

Un server su cui sono installati i driver avrà un risultato simile a questo (le versioni del pacchetto possono differire):

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]

I seguenti comandi sono necessari per installare una versione specifica dei pacchetti per garantire un aggiornamento di successo:

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

Configurare il repository Microsoft adattato a Debian 12 per preparare l'aggiornamento:

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

Preparazione degli elementi cibernetici Cleanroom 4.6 specchio

Il mirror recuperato durante la fase di preparazione (file con estensione tgz) deve essere inviato al server tramite SCP. Deve essere inserito nella directory /tmp/.

Successivamente, preparare lo specchio eseguendo i seguenti comandi come root (i file residui di un aggiornamento di una vecchia versione verranno eliminati):

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

configurazione APT

Il gestore di pacchetti APT è configurato per recuperare i pacchetti Debian 11; deve essere riconfigurato per recuperare i pacchetti Debian 12. È anche necessario aggiornare il riferimento allo specchio cyberelements Cleanroom locale. Per fare questo, eseguire i seguenti comandi come 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

Oltre a configurare i nuovi repository, si consiglia vivamente di applicare la seguente impostazione per istruire APT a non installare dipendenze raccomandate che non sono strettamente necessarie, al fine di ridurre il numero di componenti installati. Il seguente comando applica questa impostazione come root:

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

Infine, è necessario aggiornare l'elenco dei pacchetti nei repository con il seguente comando:

1
apt update

Azionamento dell'aggiornamento alla versione

Accedere al server Mediation Controller tramite SSH e passare a root, quindi aprire uno schermo come indicato sopra .

Iniziare con l'aggiornamento di alcuni pacchetti specifici in modo che l'aggiornamento di versione possa essere eseguito. Si prevede un messaggio di errore quando si esegue il primo comando, ma l'errore verrà corretto con il secondo comando:

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

Quando si aggiorna un Mediation Controller da Debian 11 a Debian 12, il pacchetto collectd viene aggiornato e diventa incompatibile con il file di configurazione generato da ** cyber** elementi Cleanroom (/etc/collectd/collectd.conf). Questo può generare un errore durante l'aggiornamento.

Per evitare questo, disabilitare collectd:

1
2
systemctl stop collectd 
systemctl disable collectd

Dopo di che, l'aggiornamento può essere avviato con il seguente comando:

1
apt dist-upgrade -y

Durante l'aggiornamento, ti verranno poste diverse domande su se mantenere i file di configurazione e aggiornarli secondo la configurazione standard di Debian 12, o mantenere la configurazione specifica in atto. Ecco le nostre raccomandazioni per la maggior parte dei file che potresti incontrare:

File di configurazione Azione raccomandata
/etc/issue Per mantenere, rispondere N
/etc/issue.net Per mantenere, rispondere N
/etc/security/limits.conf Per mantenere, rispondere N
/etc/login.defs Per mantenere, rispondere N
/etc/shibboleth/shibboleth2.xml Per mantenere, rispondere N
/etc/shibboleth/shibd.logger Applicare le modifiche, rispondere Y
/etc/default/ntpsec Applicare le modifiche, risposta Y
/etc/snmp/snmpd.conf Applicare le modifiche, rispondere Y
/etc/logrotate.d/IPdivaServer Applicare le modifiche, risposta Y
/etc/ssh/sshd_config Per mantenere, rispondere Keep the local version currently installed
/etc/ssh/ssh_config Applicare le modifiche, risposta Y
/etc/apache2/ports.conf Per mantenere, rispondere N
/etc/init.d/apache2 Per mantenere, rispondere N
/etc/modsecurity/modsecurity.conf-recommended Applicare le modifiche, risposta Y
/etc/ipdiva/httpd/commonParameters.conf Applicare le modifiche, risposta Y
/etc/ipdiva/care/djangosettings.ini Applicare le modifiche, risposta Y
/etc/crontab Applicare le modifiche, rispondere Y
/etc/openssl.cnf Applicare le modifiche, rispondere Y
/etc/audit/rules.d/audit.rules Per mantenere, rispondere N
/etc/pam.d/su Per tenere, rispondere N
/etc/sysctl.conf Per mantenere, rispondere N

Accetta il messaggio di configurazione del pacchetto glibc:

Accetta il riavvio automatico dei servizi:

Una volta completato l'aggiornamento, eseguire i seguenti comandi per riattivare collectd, rimuovere i pacchetti non necessari e riavviare la macchina:

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

Azioni specifiche del cluster dei controllori della mediazione

Sul server SLAVE Mediation Controller eseguire i seguenti comandi per risincronizzare il segreto condiviso tra MASTER Mediation Controller e SLAVE:

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

Aggiornamento dell' istanza di database PostgreSQL

Sul server Mediation Controller, aggiornare l'istanza di database PostgreSQL dalla versione 13 alla versione 15. Per fare questo, eseguire le seguenti istruzioni con i diritti root appropriati.

Controllare lo stato delle istanze Postgresql prima della migrazione:

1
pg_lsclusters

Eseguire i seguenti comandi per aggiornare l' istanza di database alla versione PostgreSQL 15:

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

Verificare che l'istanza del database sia stata aggiornata con successo. Dovrebbero apparire due istanze, una nella versione 13 e l'altra nella versione 15, che è l'unica attiva. Il controllo viene eseguito con il seguente comando:

1
pg_lsclusters

Se l'aggiornamento è stato eseguito con successo, l'istanza di database versione 13 può essere eliminata:

1
pg_dropcluster 13 main

La cancellazione dei pacchetti PostgreSQL versione 13 può essere avviata:

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

Migrazione della banca dati cyberelements Cleanroom

La configurazione del prodotto è memorizzata nella banca dati, che deve essere migrata in modo da poter contenere le configurazioni delle modifiche apportate dalla nuova versione. Mediation Controller come root.

Architettura di cluster

Per un'architettura di cluster, è necessario eseguire l'operazione da un solo Mediation Controller, indipendentemente da quale.

È inoltre necessario eseguire il seguente comando:

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

La migrazione dei dati viene attivata con un comando equivalente a questo:

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

Dove <org_clr> deve essere sostituito con il nome dell'organizzazione da migrare. Si prega di notare che se Mediation Controller ha più organizzazioni (multi-tenant), allora sarà necessario eseguire il comando quante volte ci sono organizzazioni da migrare.

Esempio

Per una piattaforma cyberelements Cleanroom che ha le organizzazioni systancia e systancia-test, è necessario eseguire i seguenti comandi:

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

Dopo la migrazione del database, il servizio Apache2 deve essere riavviato:

1
systemctl restart apache2

Configurazioni di ripristino

Alcune configurazioni sono state sovrascritte durante il processo di aggiornamento e devono essere ripristinate.

commonParameters.conf file:

Spostare i tag <Location> relativi ai gateway HTML5, che di solito si trovano alla fine del file, dal file /etc/ipdiva/httpd/commonParameters.conf.dpkg-old a /etc/ipdiva/httpd/commonParameters.extra.conf (creare il file se non esiste). Se non sono presenti tag <Location>, è possibile copiare i seguenti esempi.

 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>

djangosettings.ini file:

Copia le informazioni della riga 2 allowed_hosts del file /etc/ipdiva/care/djangosettings.ini.dpkg-old nel file /etc/ipdiva/care/djangosettings.ini. Questo può essere automatizzato con il seguente comando come root:

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

Applicazione di ripristinazioni:

Per applicare i ripristini, è necessario riavviare il servizio Apache2 come root:

1
systemctl restart apache2

Validazione

Una volta completato l'aggiornamento, l'infrastruttura Cleanroom cyberelements deve essere convalidata per assicurarsi che funzioni correttamente prima di tornare in produzione. Se la convalida fallisce, considerare il rollback ripristinando i backup del server Cleanroom cyberelements.

Accedere all'interfaccia amministratore di un'organizzazione, quindi andare al menu "A proposito" nella barra di controllo per verificare che la versione Mediation Controller sia stata aggiornata con successo a 4.6.

I test iniziali della funzionalità della piattaforma possono essere avviati, ma si consiglia di utilizzare la versione 4.6 di Edge Gateway per garantire prestazioni ottimali delle applicazioni ** cyber** elementi Cleanroom.