Přeskočit obsah

Upgrade serveru Mediation Controller za provozu

Důležité

Dokumentace k upgradu serveru Mediation Controller za provozu je určena pro všechny servery Mediation Controller se systémem Debian 11. Verzi systému Debian lze ověřit následujícím příkazem (spusťte ho přes SSH nebo z konzoly):

1
cat /etc/debian_version

Informace

Připomínáme, že přepnutí na uživatele root na počítačích s distribucí Debian je nutné provést následujícím příkazem:

1
su -

Plánování a příprava

Otevření síťových toků

Při upgradu produktu je kvůli přechodu systému Debian z verze 11 na verzi 12 nutné stáhnout mnoho balíčků z úložišť systému Debian. Musí být otevřen přístup TCP 80 na security.debian.org a ftp.fr.debian.org.

Otevření toků na počítači lze otestovat spuštěním synchronizace úložišť systému Debian. Pokud se zobrazí chybové zprávy týkající se přístupu k úložištím systému Debian, síťový tok není otevřen a pravděpodobně jej blokuje podniková brána firewall. Synchronizaci úložišť lze spustit následujícím příkazem:

1
apt update

Stažení zrcadla a potřebných nástrojů

Zrcadlo CyberElements Cleanroom 4.6 lze stáhnout z tohoto odkazu (vyžaduje vytvoření zákaznického účtu): Systancia Marketplace

Ze Systancia Marketplace je také nutné stáhnout klíč systancia.gpg, který ověřuje úložiště CyberElements Bastion.

Kromě zrcadla budou pro proces upgradu potřeba nástroje třetích stran:

  • Klient SSH (ve Windows lze použít nástroj PuTTY)
  • Klient SCP (ve Windows lze použít nástroje WinSCP nebo FileZilla)

Instalace a použití nástroje screen

Nástroj screen umožňuje otevřít více terminálů shellu v jediné konzole. K provedení upgradu verze CyberElements Bastion je nezbytné tento nástroj použít, aby se odstranila závislost na stabilitě síťového připojení. Bez nástroje screen by se totiž instalace při přerušení připojení SSH k serverům CyberElements Bastion zastavila.

Díky nástroji screen lze po opětovném připojení ke konzole shellu zařízení CyberElements Bastion znovu získat terminál, ve kterém byl spuštěn proces aktualizace.

Balíček screen nainstalujte následujícím příkazem:

1
apt install --no-install-recommends screen

Chcete-li otevřít nový terminál screen, je nutné spustit následující příkaz:

1
screen -S <ID>

Nahraďte <ID> názvem, který identifikuje relaci.

Příklad

Pro upgrady verze CyberElements je identifikátor cye-upgrade snadno rozpoznatelný. Příkaz by tedy vypadal takto:

1
screen -S cye-upgrade

Chcete-li obnovit terminál otevřený nástrojem screen, stačí spustit následující příkaz:

1
screen -r <ID>

Nahraďte <ID> názvem definovaným při otevření relace.

Příklad

Terminál dříve otevřený s identifikátorem cye-upgrade lze obnovit následujícím příkazem:

1
screen -r cye-upgrade

Chcete-li terminál po dokončení upgradu zavřít, zadejte v terminálu příkaz exit nebo klávesovou zkratku ctrl+d.

Tím se vrátíte do konzoly. Zpráva „screen is terminating“ potvrzuje, že byl terminál zavřen.

Rozšíření místa na disku pro virtuální zařízení

Virtuální zařízení Systancia Cleanroom 4.4 nebo 4.5 vyžadují rozšíření diskového oddílu /usr o 4 GB. Tato operace je nutná, aby bylo pro upgrade k dispozici dostatek místa na disku a aby se operace nezasekla.

Při připojení k serveru Mediation Controller, ať už přes SSH, nebo v režimu konzoly, vás uvítací zpráva informuje, že jste připojeni k počítači Systancia. Další řádek uvádí verzi appliance.

Příklad

Virtuální zařízení Mediation Controller ve verzi 4.5 vrátí následující výsledek:

 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

Pokud počítač není virtuální zařízení dodané ve verzi 4.4 nebo 4.5, lze tuto kapitolu přeskočit a přejít k upgradu.

Důrazně se doporučuje záloha

Následující kroky provedou změny v rozdělení disku serveru Mediation Controller na diskové oddíly. Pokud byly provedeny ruční změny, nemusí být následující pokyny vhodné a počítač se může zablokovat.

Než budete pokračovat, zálohujte počítač, případně duplikujte virtuální počítač. Snímky nelze použít, protože zejména u VMware blokují možnost rozšíření disku.

Na úrovni hypervizoru rozšiřte místo na disku virtuálního počítače o další 4 GB. Pokud disk nelze rozšířit, zkontrolujte, že neexistují žádné snímky, a pokud žádné nejsou, vypněte virtuální počítač, jestliže není podporováno rozšíření za provozu.

Po rozšíření místa na disku na úrovni virtuálního počítače jsou k rozšíření diskového oddílu /usr nutné následující příkazy, které je třeba spustit jako root:

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

Aktualizace balíčků systému Debian

Protože upgrade CyberElements Bastion vyžaduje upgrade systému Debian, doporučuje se před přechodem na Debian 12 řádně aktualizovat balíčky Debian 11. Za tímto účelem spusťte jako root následující příkazy (aktualizace systému a poté odebrání nepotřebných balíčků):

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

Mohou se zobrazit zprávy s výzvou ke změně konfigurace několika konfiguračních souborů. V takových případech vyberte možnost zachovat aktuální konfiguraci.

Příprava ovladačů Microsoft SQL Server

Pokud jsou nainstalovány ovladače Microsoft SQL Server (což je případ virtuálních zařízení, která dodává CyberElements), jsou nutné další kroky.
Chcete-li ověřit, zda jsou na serveru přítomny, můžete jako root spustit následující příkaz:

1
apt list --installed ms*

Pokud se nezobrazí žádná odpověď, ovladače nejsou nainstalovány a můžete přejít ke kroku přípravy zrcadla.
V opačném případě, pokud jsou ovladače nainstalovány, by se měly zobrazit dva balíčky: msodbcsql17 a mssql-tools. Postupujte podle pokynů v této části.

Příklady

Server, na kterém ovladače nainstalovány nejsou, by na předchozí příkaz vrátil následující výsledek:

1
Listing... Done

Server, na kterém jsou ovladače nainstalovány, vrátí výsledek podobný tomuto (verze balíčků se mohou lišit):

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]

K instalaci konkrétní verze balíčků, která zajistí úspěšný upgrade, jsou nutné následující příkazy:

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

Pro přípravu upgradu nakonfigurujte úložiště Microsoft přizpůsobené pro Debian 12:

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

Příprava zrcadla CyberElements Cleanroom 4.6

Zrcadlo získané ve fázi přípravy (soubor s příponou tgz) je nutné odeslat na server přes SCP. Umístěte jej do adresáře /tmp/.

Poté připravte zrcadlo spuštěním následujících příkazů jako root (zbytkové soubory z předchozího upgradu verze budou odstraněny):

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

Konfigurace APT

Správce balíčků APT je nakonfigurován pro stahování balíčků Debian 11; je nutné jej překonfigurovat pro stahování balíčků Debian 12. Je také nutné aktualizovat odkaz na místní zrcadlo CyberElements Bastion. Za tímto účelem spusťte jako root následující příkazy:

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

Místní zrcadlo je ověřováno klíčem systancia.gpg staženým během fáze přípravy. Odešlete jej na server přes SCP do adresáře /tmp/ a poté jej nainstalujte následujícím příkazem jako root:

1
mv /tmp/systancia.gpg /etc/apt/trusted.gpg.d/

Kromě konfigurace nových úložišť důrazně doporučujeme použít následující nastavení, které APT nařizuje neinstalovat doporučené závislosti, jež nejsou nezbytně nutné, a snížit tak počet instalovaných komponent. Následující příkaz použije toto nastavení jako root:

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

Nakonec je nutné aktualizovat seznam balíčků v úložištích následujícím příkazem:

1
apt update

Spuštění upgradu verze

Připojte se k serveru Mediation Controller přes SSH, přepněte se na root a poté otevřete relaci nástroje screen podle výše uvedeného postupu.

Začněte aktualizací určitých konkrétních balíčků, aby bylo možné provést upgrade verze. Při spuštění prvního příkazu se očekává chybová zpráva, kterou však druhý příkaz opraví:

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

Při upgradu serveru Mediation Controller ze systému Debian 11 na Debian 12 se balíček collectd aktualizuje a přestane být kompatibilní s konfiguračním souborem, který generuje CyberElements Bastion (/etc/collectd/collectd.conf). To může během aktualizace způsobit chybu.

Abyste tomu předešli, zakažte collectd:

1
2
systemctl stop collectd 
systemctl disable collectd

Poté lze upgrade spustit následujícím příkazem:

1
apt dist-upgrade -y

Během upgradu dostanete několik otázek, zda ponechat konfigurační soubory a aktualizovat je podle standardní konfigurace Debianu 12, nebo zachovat stávající specifickou konfiguraci. Zde jsou naše doporučení pro většinu souborů, se kterými se můžete setkat:

Konfigurační soubor Doporučená akce
/etc/issue Zachovat: odpovězte N
/etc/issue.net Zachovat: odpovězte N
/etc/security/limits.conf Zachovat: odpovězte N
/etc/login.defs Zachovat: odpovězte N
/etc/shibboleth/shibboleth2.xml Ponechat, odpovězte N
/etc/shibboleth/shibd.logger Použít změny, odpovězte Y
/etc/default/ntpsec Použít změny, odpovězte Y
/etc/snmp/snmpd.conf Použít změny: odpovězte Y
/etc/logrotate.d/IPdivaServer Použít změny, odpovězte Y
/etc/ssh/sshd_config Zachovat: odpovězte Keep the local version currently installed
/etc/ssh/ssh_config Použít změny, odpovězte Y
/etc/apache2/ports.conf Ponechat, odpovězte N
/etc/init.d/apache2 Ponechat, odpovězte N
/etc/modsecurity/modsecurity.conf-recommended Použít změny, odpovězte Y
/etc/ipdiva/httpd/commonParameters.conf Použít změny, odpovězte Y
/etc/ipdiva/care/djangosettings.ini Použít změny, odpovězte Y
/etc/crontab Použít změny, odpovězte Y
/etc/openssl.cnf Použít změny, odpovězte Y
/etc/audit/rules.d/audit.rules Ponechat, odpovězte N
/etc/pam.d/su Zachovat: odpovězte N
/etc/sysctl.conf Ponechat, odpovězte N

Přijměte konfigurační zprávu balíčku glibc:

Potvrďte automatické restartování služeb:

Po dokončení upgradu spusťte následující příkazy, které znovu aktivují collectd, odeberou nepotřebné balíčky a restartují počítač:

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

Akce specifické pro servery Mediation Controller v architektuře Cluster

Na serveru Mediation Controller SLAVE spusťte následující příkazy, které znovu synchronizují sdílený tajný klíč mezi serverem Mediation Controller MASTER a serverem SLAVE:

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

Upgrade instance databáze PostgreSQL

Na serveru Mediation Controller aktualizujte instanci databáze PostgreSQL z verze 13 na verzi 15. Za tímto účelem proveďte následující pokyny s příslušnými právy root.

Před migrací zkontrolujte stav instancí PostgreSQL:

1
pg_lsclusters

Spusťte následující příkazy, které aktualizují instanci databáze na PostgreSQL verze 15:

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

Ověřte, že upgrade instance databáze proběhl úspěšně. Měly by se zobrazit dvě instance, jedna ve verzi 13 a druhá ve verzi 15, která je jako jediná aktivní. Kontrola se provádí následujícím příkazem:

1
pg_lsclusters

Pokud byl upgrade úspěšný, lze instanci databáze verze 13 odstranit:

1
pg_dropcluster 13 main

Lze zahájit odstranění balíčků PostgreSQL verze 13:

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

Migrace databáze CyberElements Bastion

Konfigurace produktu je uložena v databázi, kterou je třeba migrovat, aby mohla obsahovat konfigurace změn zavedených novou verzí. Operace se provádí na serveru Mediation Controller jako root.

Architektura Cluster

U architektury Cluster je nutné provést operaci pouze z jednoho serveru Mediation Controller, bez ohledu na to, ze kterého.

Je také nutné spustit následující příkaz:

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

Migrace dat se spouští příkazem odpovídajícím tomuto:

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

Kde <org_clr> je třeba nahradit názvem organizace, která se má migrovat. Upozorňujeme, že pokud má server Mediation Controller více organizací (multi-tenant), bude nutné příkaz spustit tolikrát, kolik je organizací k migraci.

Příklad

U platformy CyberElements Bastion, která má organizace systancia a systancia-test, bude nutné spustit následující příkazy:

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

Po migraci databáze je nutné restartovat službu Apache2:

1
systemctl restart apache2

Obnovení konfigurací

Některé konfigurace byly během procesu upgradu přepsány a je třeba je obnovit.

Soubor commonParameters.conf:

Přesuňte značky <Location> týkající se serverů HTML5 Gateway, které se obvykle nacházejí na konci souboru, ze souboru /etc/ipdiva/httpd/commonParameters.conf.dpkg-old do souboru /etc/ipdiva/httpd/commonParameters.extra.conf (pokud soubor neexistuje, vytvořte ho). Pokud nejsou přítomny žádné značky <Location>, lze zkopírovat následující příklady.

 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>

Soubor djangosettings.ini:

Zkopírujte informace z řádku 2 „allowed_hosts“ souboru /etc/ipdiva/care/djangosettings.ini.dpkg-old do souboru /etc/ipdiva/care/djangosettings.ini. Lze to automatizovat následujícím příkazem spuštěným jako root:

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

Použití obnovení:

Aby se obnovení projevila, je nutné jako root restartovat službu Apache2:

1
systemctl restart apache2

Validace

Po dokončení upgradu je nutné před návratem do produkčního provozu validovat infrastrukturu CyberElements Bastion a ověřit, že funguje správně. Pokud validace selže, zvažte vrácení změn obnovením záloh serverů CyberElements Bastion.

Přejděte do rozhraní správce organizace a poté do nabídky „About“ na ovládací liště a ověřte, že verze serveru Mediation Controller byla úspěšně upgradována na 4.6.

Lze zahájit první testy funkčnosti platformy, pro zajištění optimálního výkonu aplikací CyberElements Bastion však doporučujeme používat verzi 4.6 serveru Edge Gateway.