Обновление 3.18
Версия: 3.18
Требуется версия: 3.10 и выше
Несколько слов от автора
- Мы двигаемся дальше. Это "военная версия" 3.18. Её разработка была долгая и осложнённая военными действиями, перебоями с энергоснабжением и многим другим.
- Сделано немало и опять же особенно мы старались сделать упор на доработку всяческих мелочей. Прошу вдумчиво ознакомиться со списком изменений
- Обратите внимание на страницу "Горячие клавиши"
- В версии 3.18 объявляются устаревшими разделы:
- "Заявка на подключение". В версии 3.19 раздел будет удалён. Используйте раздел "API" для организации приема заявок и создания задач
- "Общая схема коммутации". В версии 3.19 раздел будет удалён. Используйте в работе раздел "Схемы коммутации"
- Обновление. Рекомендую иметь два инстанса системы. Отдельно действующую и отдельно тестовую. На тестовой вы можете периодически обновлять базу данных с действующей системы и проводить обновление, убеждаясь, что всё работает, ознакомиться с нововведениями или выявлять моменты, которые у вас перестали работать.
- Наша группа в Telegram для взаимного общения клиентов между собой: https://t.me/usersideeu и канал для новостей: https://t.me/userside
Особенности в проведении обновления
При обновлении в 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,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
- Измените конфигурацию PHP следующим образом и перезапустите службу php-fpm.
Обратите внимание, что если ваш часовой пояс Europe/Kiev
, то вместо $(cat /etc/timezone)
Вы должны написать Europe/Kyiv
. В Debian 11 еще не внесены изменения по переименованию часового пояса, в то время как в PHP 8.1 изменения уже внесены.
sudo sed -i "s@^;date.timezone.*@date.timezone = $(cat /etc/timezone)@" /etc/php/8.1/fpm/php.ini sudo sed -i "s@^;date.timezone.*@date.timezone = $(cat /etc/timezone)@" /etc/php/8.1/cli/php.ini sudo sed -i "s@;cgi.fix_pathinfo=1@cgi.fix_pathinfo=0@" /etc/php/8.1/fpm/php.ini sudo sed -i "s@post_max_size = 8M@post_max_size = 100M@" /etc/php/8.1/fpm/php.ini sudo sed -i "s@upload_max_filesize = 2M@upload_max_filesize = 100M@" /etc/php/8.1/fpm/php.ini sudo sed -i "s@max_execution_time.*@max_execution_time = 300@" /etc/php/8.1/fpm/php.ini sudo sed -i "s@max_input_time.*@max_input_time = 300@" /etc/php/8.1/fpm/php.ini sudo systemctl restart php8.1-fpm
- В 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, чтобы она запускала нужную вам версию.
- Версия 3.18 требует Python версии 3.8 или новее. Если ваша версия ниже 3.8, то вам обязательно нужно будет установить более новую версию. Инструкцию того, как это сделать, мы убрали по причине слепого копипаста команд без понимания когда и зачем их выполнять.
- Остановите супервизор и все контролируемые им службы:
sudo systemctl stop supervisor
- Теперь консольный скрипт, запускающий различные команды из командной строки, имеет имя
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
- Пользователю RabbitMQ, который используется в USERSIDE, необходимо дать права на мониторинг, чтобы USERSIDE мог осуществлять мониторинг работы сервера. Для этого выполните (при условии, что имя вашего пользователя
userside
):
sudo rabbitmqctl set_user_tags "userside" "monitoring"
Если вы используете vhost оличный от корневого (по умолчанию), то также нужно добавить соответствующую опцию, например для vhost userside_dev
:
sudo rabbitmqctl --vhost userside_dev set_user_tags "userside" "monitoring"
- С помощью автоматического инсталлятора выполните обновление:
sudo -u www-data php userside_install.phar install
- В случае ошибки в процессе обновления или если работа инсталлятора не была завершена корректно, запустите инсталлятор в режиме восстановления. Возможно для этого понадобится вернуть прежнее значение fastcgi_pass в конфигурации nginx, а также запускать инсталлятор при помощи указания конкретной версии PHP, например:
sudo -u www-data php7.4 userside_install.phar repair
- После обновления userside, при условии что была обновлена версия python, необходимо будет переустановить виртуальное окружение и зависимости для поллера. Старое окружение можно удалить и затем создать новое:
sudo rm -rf /var/www/userside/microservice/poller/venv sudo python3 -m venv /var/www/userside/microservice/poller/venv
- Необходимо обновить (установить) зависимости для поллера:
cd /var/www/userside/microservice/poller sudo venv/bin/pip3 install --upgrade pip sudo venv/bin/pip3 install -U -r requirements.txt
- Обратите внимание, что начиная с версии 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-перестанет работать для тех, кто не провёл перенастройку.
- Если в версии 3.17 вы до сих пор не настроили работу с WebSTOMP - нужно это сделать иначе перестанет работать часть системы
- Не забудьте обновить все модули на их свежие версии
Список изменений: просмотреть
Проведение обновления: инструкция