Обновление 3.18

Материал из WiKi - UserSide

Версия: 3.18

Требуется версия: 3.10 и выше

Несколько слов от автора

  • Мы двигаемся дальше. Это "военная версия" 3.18. Её разработка была долгая и осложнённая военными действиями, перебоями с энергоснабжением и многим другим.
  • Сделано немало и опять же особенно мы старались сделать упор на доработку всяческих мелочей. Прошу вдумчиво ознакомиться со списком изменений
  • Обновление. Рекомендую иметь два инстанса системы. Отдельно действующую и отдельно тестовую. На тестовой вы можете периодически обновлять базу данных с действующей системы и проводить обновление, убеждаясь, что всё работает, ознакомиться с нововведениями или выявлять моменты, которые у вас перестали работать.

Особенности в проведении обновления

При обновлении в Docker-окружении, обратитесь к инструкциям в репозитории Docker-бандла.

  • Если вы обновляетесь с версии 3.10 - ознакомьтесь со страницей: Обновление 3.11
  • Если вы обновляетесь с версии 3.11 и ранее - ознакомьтесь со страницей: Обновление 3.12
  • Если вы обновляетесь с версии 3.12 и ранее - ознакомьтесь со страницей: Обновление 3.13
  • Если вы обновляетесь с версии 3.13 и ранее - ознакомьтесь со страницей: Обновление 3.14
  • Если вы обновляетесь с версии 3.14 и ранее - ознакомьтесь со страницей: Обновление 3.15
  • Если вы обновляетесь с версии 3.15 и ранее - ознакомьтесь со страницей: Обновление 3.16
  • Если вы обновляетесь с версии 3.16 и ранее - ознакомьтесь со страницей: Обновление 3.17
  • Версия 3.18 требует PHP версии 8.1. Вы можете установить все необходимые пакеты дополнительно к уже существующей иной версии PHP. Если используете LDAP, то установите также php8.1-ldap. Если используете TurboSMS, то установите php8.1-soap.
sudo apt install -y php8.1-{fpm,cli,common,curl,intl,json,mbstring,opcache,pgsql,readline,xml,zip,snmp,gd}
  • Если версия php8.1 отсутствует в вашем репозитории, то воспользуйтесь альтернативным репозиторием, например, deb.sury.org, добавив его в систему следующим образом и затем повторив команду установки PHP8.1 приведенную пунктом выше:
sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
sudo apt update
  • В NGINX измените используемую версию PHP для обновляемой копии USERSIDE. Если вы следовали инструкциям по установке системы, то в файле /etc/nginx/conf.d/default.conf или userside.conf или в другом, который вы использовали для настройки userside, измените строку:
fastcgi_pass  unix:/run/php/php7.4-fpm.sock;

на строку

fastcgi_pass  unix:/run/php/php8.1-fpm.sock;

и перечитайте конфигурацию nginx:

sudo nginx -s reload
  • Обратите внимание, что при вызове команды php из командной строки, теперь будет вызываться php8.1, так как это последняя установленная версия. Если вы где-либо до сих пор используете php7.4, то вам нужно изменить вызов php в этих местах либо изменить альтернативную команду php, чтобы она запускала нужную вам версию.
  • Остановите супервизор и все контролируемые им службы:
sudo systemctl stop supervisor
  • Теперь консольный скрипт, запускающий различные команды из командной строки, имеет имя <core>run вместо userside. Вам нужно изменить везде команду запуска с php /var/www/userside/userside на php /var/www/userside/run.
    • В файле /etc/cron.d/userside нужно заменить строку:
* * * * *   www-data   /usr/bin/php /var/www/userside/userside cron > /dev/null

на строку:

* * * * *   www-data   /usr/bin/php /var/www/userside/run cron > /dev/null
    • В файле /etc/supervisor/conf.d/us-core-worker.conf нужно заменить строку:
command=/usr/bin/php /var/www/userside/userside queue/listen

на строку:

command=/usr/bin/php /var/www/userside/run queue/listen
sudo -u www-data php userside_install.phar install
  • В случае ошибки в процессе обновления или если работа инсталлятора не была завершена корректно, запустите инсталлятор в режиме восстановления. Возможно для этого понадобится вернуть прежнее значение fastcgi_pass в конфигурации nginx, а также запускать инсталлятор при помощи указания конкретной версии PHP, например:
sudo -u www-data php7.4 userside_install.phar repair
  • Обратите внимание, что начиная с версии 3.18, фоновыми службами выполняется значительная часть работы по взаимодействию с сетевым оборудованием. Запустите супервизор:
sudo systemctl start supervisor

И проследите, чтобы все службы запустились и работали корректно (RUNNING):

sudo supervisorctl status

Вы должны увидеть 5 экземпляров службы us-poller и 10 экземпляров службы us-core-worker, либо то количество, которое вы самостоятельно указали в конфигурационных файлах супервизора.

  • Начиная с версии 3.18 вместо модулей сателлитов (usm_satellite), устанавливаемых на удаленных узлах для проксирования команд взаимодействия с оборудованием, теперь используются точно такие же поллеры, как и в ядре системы, но с обязательным указанием идентификатора "сетеллита" в настройках. Обязательно ознакомьтесь с действиями, необходимыми для перехода с usm_satellite на usm_poller в соответствующем разделе.
  • В версии 3.18 мы очень сильно переработали структуру базы данных. Поменялась как основная схема так и имена всех таблиц, почти всех полей и, зачастую, типы этих полей. Во-первых обновление может занять длительное время, а во-вторых если вы в работе использовали прямое чтение из базы данных - всё это нуждается в переработке.
  • Переработан низкоуровневый опрос оборудования (FDB, ARP, опрос интерфейсов и т.п.). Всё это теперь выполняется поллерами ядра. После обновления проверьте работоспособность опроса FDB-таблиц и прочего.
  • Удалена работа с JABBER. Используйте службу уведомлений "Custom HTTP request" либо Messenger (Telegram)
  • Если вы до сих пор не перенастроили API-ключ на новую систему - сделайте это. В версии 3.18 $zapikey удален и API-перестанет работать для тех, кто не провёл перенастройку.
  • Не забудьте обновить все модули на их свежие версии

Список изменений: просмотреть

Проведение обновления: инструкция