Обновление FreePBX 15 до FreePBX 16. Решение проблем.
Сегодня обновил первый из астерисков на FBPX16 иииии я положил свой астериск и завел обратно без восстановления из бэкапа.
Я рекомендую пока что воздержаться от обновления хотя бы до июня 2022 года чтобы разрабы допилили все детские косяки.
Энтузиасты которым ничего не страшно, делайте сначала бэкап FBPX, пробуйте обновить образ в наколенной виртуалке, чтобы понять что вас ждет и только потом уже боевой сервер обновляйте.
Что нужно, чтобы обновиться.
- FPBX15
- asterisk не ниже 13
- активированный FBPX
Процесс обновления можно запустить как из вебморды, так и из консоли.
Порядок обновления из веб-интерфейса:
1. Admin — module admin — Обновляем все модули
2. Admin — Backup & Restore — Делаете бэкап и скачиваете себе его на комп на случай если АТС ляжет полностью.
3. Admin — 15 to 16 Upgrade Tool — Проверяете ваш FPBX на готовность к обновлению, если находит модули которые устарели и указывает что стоит сторонний модуль который не поддерживается и его нужно удалить — удаляете через admin — module admin.
4. Admin — 15 to 16 Upgrade Tool — После исправления зависимостей, запускаем обновление, ждем окончание процесса.
Наблюдать за процессом обновления можно и из консоли командой — «less /var/log/pbx/freepbx16-upgrade.log»
Предварительна информация для обновления из консоли:
Делаем бэкап freepbx! Всех модулей которые доступны! Делаем отдельный бэкап БД астериска. Если виртуалка, то снапшот или бэкап виртуалки.
Я столкнулся с проблемой «In RedisCache.php line 135: Function Redis::delete() is deprecated» после обновления до FreePBX 16. Лечить так
Redis::delete is deprecated в 135 строке файла /var/www/html/admin/libraries/Composer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/RedisCache.php
Лечится изменением 135 строки на return $this->redis->del($id) >= 0;
Это изменение лучше сделать до обновления, чтобы процесс прошел гладко.
В официальной документации по обновлению, решение проблемы такое. Нужно выполнить команду в консоли
/usr/sbin/fwconsole ma downloadinstall framework —tag=16.0.10.42
Желательно провести проверку через вебморду(admin-15 to 16 upgrade tool). В консоли не показывает предупреждения из-за чего я потерпел фиаско в первый раз.
Подготавливаемся к обновлению. Обязательный этап.
1. fwconsole ma downloadinstall versionupgrade
2. fwconsole versionupgrade —check
Смотрим на какие модули ругается возможно какие то модули устарели и больше не поддерживаются(deprecated/not supported), а так же устанавливаем все обновления.
В моем случае пришлось удалять эти модули:
fwconsole ma uninstall endpointman
fwconsole ma uninstall restapi
fwconsole ma uninstall campon
fwconsole ma uninstall asternic_cdr
Применяем конфиг, обновляем все модули, перечитываем права и еще раз применяем конфиг.
fwconsole reload
fwconsole ma upgradeall
fwconsole chown
fwconsole reload
Запускаем обновление.
fwconsole versionupgrade —upgrade -vv
Дожидаемся окончания обновления.
Если во время обновления зафейлилось что-то и астериск лег, попробуйте запустить обновление заново.
Для этого перемещаем файл mv /var/run/asterisk/16upgrade.pid /tmp и запускаем заново обновление fwconsole versionupgrade —upgrade -vv
История:
UPD 10.02.2022
Очередное неудачное обновление FreePBX до 16 версии. Устранение ошибок.
Сегодня попался еще один сломанный обновлением до FreePBX 16 сервер астериска.
Меня попросили устранить последствия.
Вводные данные: запустили обновление все шло хорошо, потом завис yum и обновление завершилось с ошибкой на моменте установки freepbx 16, веб морда не работает, астериск не работает.
Ошибка yum выглядела вот так:
Ключевые ошибки:
failed: Thread died in Berkeley DB library
DB_RUNRECOVERY: Fatal error, run database recovery
Лечится парой команд:
Бэкапим старые бд
mkdir /var/lib/rpm/backup
cp -a /var/lib/rpm/__db* /var/lib/rpm/backup/
Удаляем старые
rm -f /var/lib/rpm/__db.[0-9][0-9]*
Лечим бд
rpm —quiet -qa
rpm –rebuilddb
yum clean all
После этого спокойно запускаем заново обновление.
fwconsole versionupgrade —upgrade -vv
Еще столкнулся с тем, что не мог установиться модуль sysadmin с ошибкой, что не найдена директория /etc/sangoma/
Лечится переустановкой пакета sangoma-pbx16.
Yum reinstall sangoma-pbx16 -yЗатем можно спокойно обновлять/устанавливать модуль sysadmin и все от него зависимые модули.
UPD 28.01.2022
Стало меньше проблем с обновлением, но они есть.
Как и раньше порядок:
fwconsole versionupgrade —check
если показывает что модули устарели и их нужно удалить, удаляем до состояния чтобы все было зеленое как на скрине.
Затем запускаем обновление и наслаждаемся процессом.
fwconsole versionupgrade —upgrade -vv
Процесс занимает продолжительное время, если вдруг разлогинило из консоли, узнать на какой стадии процесс обновления можно зайдя заново на сервак и выполнив команду: less /var/log/pbx/freepbx16-upgrade.log
Обновление модулей FreePBX через консоль
Для того, чтобы выполнить обновление модулей FreePBX через консоль, подключившись по SSH, необходимо выполнить следующие команды:
sudo -u asterisk /var/lib/asterisk/bin/module_admin upgradeall
sudo -u asterisk /var/lib/asterisk/bin/module_admin reload
Обновление FreePBX 14 до FreePBX 15 (Distro)
В данной статье расскажем как произвести обновление FreePBX 14 до стабильной версии FreePBX 15.
Друзья, 31 октября 2019 года команда разработчиков FreePBX официально объявила о выходе FreePBX 15. На данный момент FreePBX 15 Distro доступно для скачивания с официального сайта. Но при этом скачивание FreePBX 15 Manual пока не доступно с сайта, но его можно скачать.
Обновляться будем с FreePBX 14.0.13.6.
Резервная копия
Первым делом необходимо выполнить резервную копию виртуальной машины (снять образ) или системы. Как выполнить бэкап FreePBX мы писали в статье: FreePBX 14 backup.
Обновление системы
Перед миграцией на новую ветку следует произвести полное обновление всех модулей и компонентов до актуального состояния. Произвести обновление можно двумя способами. Рассмотрим, конечно оба способа обновления FreePBX 14 до 15-й версии:
Через GUI
В процессе миграции с FreePBX 14 могут возникнуть ошибки. Чтобы их устранить, требуется полностью обновить текущую систему и модули до актуального состояния. Переходим в меню Admin → Updates → System Updates и производим обновление системы.
Через CLI
Подключаемся по SSH и вводим команду:
fwconsole ma upgradeall
Установка модуля обновления
Переходим в меню Admin → Module Admin. Нажимаем кнопку Upload modules.
- Выбираем Type: Download (From Web).
- Вставляем ссылку: http://mirror1.freepbx.org/modules/packages/versionupgrade/versionupgrade-14.0.5.tgz в поле Download Remote Module.
- Нажимаем кнопку Download (From Web).
Далее активируем установленный модуль: Admin → Module Admin → PBX Upgrader. Выбираем модуль и нажимаем кнопку Install и далее Process.
Следующим этапом подтверждаем – Confirm.
Обновление FreePBX 14 до FreePBX 15
После установки появится новый пункт меню: Admin → 14 to 15 Upgrade Tool. Переходим в данный пункт.
Внимание! Если вы в настоящее время используете какие-либо коммерческие модули, пожалуйста, убедитесь, что они имеют право на обновление. Вы можете сделать это, посмотрев в меню System Admin → Вкладка Activation. Если модуль не подходит для обновления, он может перестать функционировать!
Тем не менее, не рекомендуется обновлять версии FreePBX без всех коммерческих модулей, находящихся в периоде подписки, так как это может полностью сломать вашу систему. Пожалуйста, убедитесь, что у вас есть полная резервная копия, прежде чем продолжить!
Продолжаем обновление: Proceed to the upgrade process.
Подтверждаем верификацию системных параметров опроса использования FreePBX.
Если вы не можете обновить систему из-за наличия ошибок, следует обновить текущую систему. Как правило, ошибки возникают по следующим причинам:
- Система не активирована
- Доступны обновления для модулей
Следует обновить систему и модули до последней версии, после этого запустить процесс обновления заново.
При переходе с FreePBX 14 на FreePBX 15 между тем может возникнуть ошибка обновления модулей:
- FreePBX Framework
- System Admin
Их необходимо обновить последовательно. Если у вас возникла данное сообщение, следовательно вы не произвели обновление действующей системы.
В заключении хотелось бы добавить, что обновление FreePBX стоит производить лишь в случае острой необходимости. И особое внимание следует уделить резервированию и бэкапированию работающей системы. Процесс обновления занимает длительное время, поэтому обновлять следует также в часы ЧНН.
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.
Digital Art Work
Для обновления модулей freepbx достаточно выполнить всего две команды.
#/var/lib/asterisk/bin/module_admin upgradeall
#/var/lib/asterisk/bin/module_admin reload
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.