Към съдържанието

Надграждане на Mediation Controller по време на работа

Важно

Документацията за надграждане по време на работа на Mediation Controller е предназначена за всеки сървър Mediation Controller, работещ с Debian 11. Версията на Debian може да се провери със следната команда (която се изпълнява чрез SSH или чрез достъп до конзолата):

1
cat /etc/debian_version

Информация

Като напомняне, превключването към root на компютри с Debian трябва да се извършва със следната команда:

1
su -

Планиране и подготовка

Отваряне на мрежовите потоци

При надграждане на продукта много пакети трябва да бъдат изтеглени от хранилищата на Debian поради прехода от Debian версия 11 към 12. Достъпът през TCP 80 до security.debian.org и ftp.fr.debian.org трябва да бъде отворен.

За да проверите отварянето на потоците на компютъра, може да стартирате синхронизиране на хранилищата на Debian. Ако се покажат съобщения за грешки относно достъпа до хранилищата на Debian, мрежовият поток не е отворен и вероятно е блокиран от корпоративната защитна стена. Синхронизирането на хранилищата може да се стартира със следната команда:

1
apt update

Изтегляне на огледалото и необходимите инструменти

Огледалото на CyberElements Cleanroom 4.6 може да бъде изтеглено от тази връзка (изисква създаване на клиентски акаунт): Systancia Marketplace

Ключът systancia.gpg, който удостоверява хранилището на CyberElements Bastion, също трябва да бъде изтеглен от Systancia Marketplace.

Освен огледалото, за процеса на надграждане ще са необходими инструменти на трети страни:

  • SSH клиент (в Windows може да се използва инструментът PuTTY)
  • SCP клиент (в Windows могат да се използват инструментите WinSCP или FileZilla)

Инсталиране и използване на инструмента screen

Инструментът screen ви позволява да отваряте няколко терминала на обвивката в една конзола. Използването на този инструмент е задължително за надграждането на версията на CyberElements Bastion, за да се премахне зависимостта от стабилността на мрежовата свързаност. Всъщност без инструмента screen инсталирането би било спряно при прекъсване на SSH връзката със сървърите на CyberElements Bastion.

Благодарение на инструмента screen, при повторно свързване към конзолата на обвивката на оборудването на CyberElements Bastion можете да възстановите терминала, в който е бил изпълнен процесът на актуализиране.

Пакетът screen трябва да се инсталира със следния команден ред:

1
apt install --no-install-recommends screen

За да отворите нов терминал screen, трябва да изпълните следната команда:

1
screen -S <ID>

Заменете <ID> с име, което идентифицира сесията.

Пример

При надграждане на версията на CyberElements идентификаторът cye-upgrade е лесно разпознаваем. Следователно командата би била следната:

1
screen -S cye-upgrade

За да възстановите терминал, отворен от screen, просто изпълнете следната команда:

1
screen -r <ID>

Заменете <ID> с името, зададено при отварянето на сесията.

Пример

Терминалът, отворен преди това с идентификатора cye-upgrade, може да бъде възстановен със следната команда:

1
screen -r cye-upgrade

За да затворите терминала след завършване на надграждането, въведете в терминала командата exit или клавишната комбинация ctrl+d.

Това ще ви върне в конзолата. Съобщението „screen is terminating“ потвърждава, че терминалът е затворен.

Разширяване на дисковото пространство за виртуални устройства

Виртуалните устройства Systancia Cleanroom 4.4 или 4.5 изискват добавяне на разширение на диска от 4 GB към дяла /usr. Тази операция е необходима, за да има достатъчно дисково пространство за надграждането и да се избегне блокиране по време на операцията.

При свързване със сървъра Mediation Controller, било чрез SSH, или в конзолен режим, приветствено съобщение ще ви информира, че сте свързани с компютър на Systancia. Допълнителен ред показва версията на устройството.

Пример

Виртуално устройство Mediation Controller с версия 4.5 ще даде следния резултат:

 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

Ако компютърът не е виртуално устройство, предоставено с версия 4.4 или 4.5, тази глава може да се пропусне, за да се премине към надграждането.

Силно се препоръчва резервно копие

Следващите стъпки ще променят разделянето на дялове на диска на сървъра Mediation Controller. Ако са направени ръчни промени, следващите инструкции може да не са подходящи, което да доведе до блокиране на компютъра.

Преди да продължите, направете резервно копие на компютъра или, ако е необходимо, дублирайте виртуалната машина. Моментните снимки не могат да се използват, защото, особено при VMware, те блокират възможността за разширяване на диск.

На ниво хипервизор разширете дисковото пространство на виртуалната машина с допълнителни 4 GB. Ако не е възможно да разширите диска, проверете дали няма моментни снимки, а ако няма, изключете виртуалната машина, ако разширяването по време на работа не се поддържа.

След като дисковото пространство бъде разширено на ниво виртуална машина, следните команди, които се изпълняват като root, са необходими, за да се разшири дялът /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

Надграждане

Актуализиране на пакетите на Debian

Тъй като надграждането на CyberElements Bastion изисква надграждане на Debian, препоръчително е да актуализирате правилно пакетите на Debian 11, преди да преминете към Debian 12. За да направите това, изпълнете следните команди като root (актуализиране на системата, след което премахване на ненужните пакети):

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

Може да се появят съобщения, които ви подканват да промените конфигурацията на няколко конфигурационни файла. В тези случаи изберете опцията за запазване на текущата конфигурация.

Подготовка на драйверите на Microsoft SQL Server

Необходими са допълнителни стъпки, ако са инсталирани драйвери на Microsoft SQL Server (такъв е случаят с виртуалните устройства, предоставяни от CyberElements).
За да проверите дали те присъстват на сървъра, можете да изпълните следната команда като root:

1
apt list --installed ms*

Ако не се появи отговор, драйверите не са инсталирани и можете да преминете към стъпката за подготовка на огледалото.
В противен случай, ако драйверите са инсталирани, трябва да бъдат изброени два пакета: msodbcsql17 и mssql-tools. Следвайте инструкциите в тази част.

Примери

Сървър, на който драйверите не са инсталирани, би дал следния резултат от предходната команда:

1
Listing... Done

Сървър, на който драйверите са инсталирани, ще даде резултат, подобен на този (версиите на пакетите може да се различават):

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]

Следните команди са необходими, за да се инсталира конкретна версия на пакетите, така че да се осигури успешно надграждане:

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

Конфигурирайте хранилището на Microsoft, адаптирано за Debian 12, за да подготвите надграждането:

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

Подготовка на огледалото на CyberElements Cleanroom 4.6

Огледалото, изтеглено по време на фазата на подготовка (файл с разширение tgz), трябва да бъде изпратено на сървъра чрез SCP. То трябва да бъде поставено в директорията /tmp/.

След това подгответе огледалото, като изпълните следните команди като root (остатъчните файлове от предишно надграждане на версия ще бъдат изтрити):

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

Конфигурация на APT

Мениджърът на пакети APT е конфигуриран да изтегля пакети за Debian 11; той трябва да бъде преконфигуриран да изтегля пакети за Debian 12. Необходимо е също да се актуализира препратката към локалното огледално хранилище на CyberElements Bastion. За да направите това, изпълнете следните команди като 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

Локалното огледално хранилище се удостоверява с ключа systancia.gpg, изтеглен по време на фазата на подготовка. Изпратете го до сървъра чрез SCP в директорията /tmp/, след което го инсталирайте със следната команда като root:

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

Освен конфигурирането на новите хранилища, силно препоръчваме да приложите следната настройка, за да укажете на APT да не инсталира препоръчаните зависимости, които не са строго необходими, с цел да се намали броят на инсталираните компоненти. Следната команда прилага тази настройка като root:

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

Накрая е необходимо да актуализирате списъка с пакети в хранилищата със следната команда:

1
apt update

Задействане на надграждането на версията

Свържете се със сървъра Mediation Controller чрез SSH и превключете към root, след което отворете сесия на screen както е посочено по-горе.

Започнете с актуализиране на някои специфични пакети, за да може да се извърши надграждането на версията. При изпълнението на първата команда се очаква съобщение за грешка, но грешката ще бъде коригирана с втората команда:

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

При надграждане на сървър Mediation Controller от Debian 11 до Debian 12 пакетът collectd се актуализира и става несъвместим с конфигурационния файл, генериран от CyberElements Bastion (/etc/collectd/collectd.conf). Това може да предизвика грешка по време на актуализирането.

За да избегнете това, деактивирайте collectd:

1
2
systemctl stop collectd 
systemctl disable collectd

След това надграждането може да бъде стартирано със следната команда:

1
apt dist-upgrade -y

По време на надграждането ще ви бъдат зададени няколко въпроса дали да запазите конфигурационните файлове и да ги актуализирате според стандартната конфигурация на Debian 12, или да запазите текущата специфична конфигурация. Ето нашите препоръки за повечето файлове, които може да срещнете:

Конфигурационен файл Препоръчително действие
/etc/issue Запазете – отговорете N
/etc/issue.net Запазете – отговорете N
/etc/security/limits.conf Запазете – отговорете N
/etc/login.defs Запазете – отговорете N
/etc/shibboleth/shibboleth2.xml За да запазите, отговорете N
/etc/shibboleth/shibd.logger Приложете промените, отговорете Y
/etc/default/ntpsec Приложете промените, отговорете Y
/etc/snmp/snmpd.conf Приложете промените, отговорете Y
/etc/logrotate.d/IPdivaServer Приложете промените, отговорете Y
/etc/ssh/sshd_config За да запазите, отговорете Keep the local version currently installed
/etc/ssh/ssh_config Приложете промените, отговорете Y
/etc/apache2/ports.conf За да запазите, отговорете N
/etc/init.d/apache2 За да запазите, отговорете N
/etc/modsecurity/modsecurity.conf-recommended Приложете промените, отговорете Y
/etc/ipdiva/httpd/commonParameters.conf Приложете промените, отговорете Y
/etc/ipdiva/care/djangosettings.ini Приложете промените, отговорете Y
/etc/crontab Приложете промените, отговорете Y
/etc/openssl.cnf Приложете промените, отговорете Y
/etc/audit/rules.d/audit.rules За да запазите, отговорете N
/etc/pam.d/su За да запазите, отговорете N
/etc/sysctl.conf За да запазите, отговорете N

Приемете съобщението за конфигуриране на пакета glibc:

Приемете автоматичното рестартиране на услугите:

След като надграждането завърши, изпълнете следните команди, за да активирате отново collectd, да премахнете ненужните пакети и да рестартирате компютъра:

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

Действия, специфични за сървърите Mediation Controller в архитектура Cluster

На сървъра Mediation Controller SLAVE изпълнете следните команди, за да синхронизирате отново споделения таен ключ между сървъра Mediation Controller MASTER и SLAVE:

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

Надграждане на екземпляра на базата данни PostgreSQL

На сървъра Mediation Controller актуализирайте екземпляра на базата данни PostgreSQL от версия 13 до версия 15. За целта изпълнете следните инструкции със съответните права на root.

Проверете състоянието на екземплярите на PostgreSQL преди миграцията:

1
pg_lsclusters

Изпълнете следните команди, за да актуализирате екземпляра на базата данни до PostgreSQL версия 15:

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

Проверете дали екземплярът на базата данни е надграден успешно. Трябва да се покажат два екземпляра – единият с версия 13, а другият с версия 15, който е единственият активен. Проверката се извършва със следната команда:

1
pg_lsclusters

Ако надграждането е успешно, екземплярът на базата данни с версия 13 може да бъде изтрит:

1
pg_dropcluster 13 main

Може да се стартира изтриването на пакетите на PostgreSQL версия 13:

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

Миграция на базата данни на CyberElements Bastion

Конфигурацията на продукта се съхранява в базата данни, която трябва да бъде мигрирана, за да може да съдържа конфигурациите на промените, въведени с новата версия. Операцията се извършва на сървъра Mediation Controller като root.

Архитектура Cluster

При архитектура Cluster е необходимо операцията да се извърши само от един сървър Mediation Controller, без значение кой.

Необходимо е също да изпълните следната команда:

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

Миграцията на данните се стартира с команда, подобна на тази:

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

Където <org_clr> трябва да се замени с името на организацията, която ще се мигрира. Имайте предвид, че ако сървърът Mediation Controller има няколко организации (множество тенанти), ще трябва да изпълните командата толкова пъти, колкото са организациите за миграция.

Пример

За платформа CyberElements Bastion с организациите systancia и systancia-test ще трябва да изпълните следните команди:

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

След миграцията на базата данни услугата Apache2 трябва да се рестартира:

1
systemctl restart apache2

Възстановяване на конфигурациите

Някои конфигурации са презаписани по време на процеса на надграждане и трябва да бъдат възстановени.

Файл commonParameters.conf:

Преместете етикетите <Location>, отнасящи се до сървърите HTML5 Gateway, които обикновено се намират в края на файла, от файла /etc/ipdiva/httpd/commonParameters.conf.dpkg-old във /etc/ipdiva/httpd/commonParameters.extra.conf (създайте файла, ако не съществува). Ако няма етикети <Location>, могат да се копират следните примери.

 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:

Копирайте информацията от ред 2 „allowed_hosts“ на файла /etc/ipdiva/care/djangosettings.ini.dpkg-old във файла /etc/ipdiva/care/djangosettings.ini. Това може да се автоматизира със следната команда като root:

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

Прилагане на възстановяванията:

За да се приложат възстановяванията, е необходимо рестартиране на услугата Apache2 като root:

1
systemctl restart apache2

Валидиране

След като надграждането приключи, инфраструктурата на CyberElements Bastion трябва да се валидира, за да се гарантира, че функционира правилно, преди връщането в производствена среда. Ако валидирането е неуспешно, обмислете връщане към предишното състояние чрез възстановяване на резервните копия на сървърите на CyberElements Bastion.

Отворете административния интерфейс на дадена организация, след което отидете в менюто „About“ в лентата за управление, за да проверите дали версията на Mediation Controller е надградена успешно до 4.6.

Могат да се стартират първоначалните тестове на функционалността на платформата, но препоръчваме да използвате версия 4.6 на Edge Gateway, за да осигурите оптимална производителност на приложенията на CyberElements Bastion.