Upgrade Notes 22.03-22.05

В данном релизе осуществлен переход на новую версию сервисов работы с чатами, а так же миграция баз данных на PostgreSQL версии 14.

backup

Выполните резервное копирование базы данных до начала обновления!

Алгоритм обновления

  1. Полная остановка всех сервисов webitel
  2. Подключение нового репозитория Webitel v22.05
  3. Подготовка PostgreSQL 12 и установка новой версии PostgreSQL 14
  4. Миграция базы данных с версии PostgreSQL 12 на 14
  5. Удаление старой версии PostgreSQL 12 и запуск PostgreSQL 14
  6. Миграция базы данных с версии Webitel v22.03 на v22.05
  7. Удаление устаревших сервисов Webitel v22.03
  8. Установка и обновление сервисов Webitel v22.05
  9. Запуск всех обновленных сервисов Webitel v22.05

Полная остановка всех сервисов webitel

systemctl stop webitel-api webitel-app webitel-uac \
  engine call_center storage chat_manager chatbot_manager flow_manager \
  freeswitch ngcp-rtpengine-daemon opensips

Подключение нового репозитория Webitel v22.05

echo "deb http://deb.webitel.com/debian `lsb_release -sc` main" > /etc/apt/sources.list.d/webitel.list
echo "deb http://deb.webitel.com/debian `lsb_release -sc` 22.05-releases" >> /etc/apt/sources.list.d/webitel.list
apt update

Подготовка PostgreSQL 12 и установка новой версии PostgreSQL 14

apt purge timescaledb-postgresql-12 timescaledb-loader-postgresql-12
apt install timescaledb-2-loader-postgresql-12 timescaledb-2-postgresql-12
sudo -u postgres psql webitel -qxc "ALTER EXTENSION timescaledb UPDATE;"
sudo -u postgres psql webitel -qxc "DROP EXTENSION "pgcrypto" CASCADE;"
systemctl stop postgresql

apt install postgresql-14 webitel-postgresql-14 timescaledb-2-postgresql-14
timescaledb-tune --quiet --yes
systemctl stop postgresql

Миграция базы данных с версии PostgreSQL 12 на 14

su postgres
cd /tmp
/usr/lib/postgresql/14/bin/pg_upgrade \
  --old-datadir "/etc/postgresql/12/main" \
  --new-datadir "/etc/postgresql/14/main" \
  --old-bindir "/usr/lib/postgresql/12/bin" \
  --new-bindir "/usr/lib/postgresql/14/bin"

exit

Вносим правки в файлы /etc/postgresql/14/main/postgresql.conf  и /etc/postgresql/14/main/pg_hba.conf

Удаление старой версии PostgreSQL 12 и запуск PostgreSQL 14

apt purge webitel-postgresql-12 timescaledb-2-postgresql-12 timescaledb-2-loader-postgresql-12 postgresql-client-12 postgresql-12
rm -rf '/var/lib/postgresql/12'

systemctl enable postgresql
systemctl start postgresql
sudo -u postgres psql webitel -qxc "ALTER USER opensips WITH PASSWORD 'webitel';"

Возможно нужно будет обновить пароли для других пользователей базы.

Миграция базы данных с версии Webitel v22.03 на v22.05

su postgres
cd /tmp
wget https://git.webitel.com/projects/WEP/repos/postgres/raw/migration/22.03-22.05.sql
psql webitel -f 22.03-22.05.sql
exit

Удаление устаревших сервисов Webitel v22.03

apt purge webitel-chat-manager
systemctl disable chat_manager chatbot_manager
rm /etc/systemd/system/chat_manager.service
rm /etc/systemd/system/chatbot_manager.service

Установка и обновление сервисов Webitel v22.05

apt upgrade
apt install webitel-messages  opensips-http-modules opensips-postgres-module \
    opensips-presence-modules opensips-rabbitmq-modules opensips-wss-module \
    opensips-tls-module opensips-tlsmgm-module opensips-xmlrpc-module

cp /opt/webitel/etc/systemd/system/messages-bot.service /etc/systemd/system/
cp /opt/webitel/etc/systemd/system/messages-srv.service /etc/systemd/system/

systemctl enable messages-bot messages-srv

Запуск всех обновленных сервисов Webitel v22.05

systemctl restart consul
systemctl restart rabbitmq-server

systemctl restart webitel-api webitel-app webitel-uac messages-bot messages-srv flow_manager engine call_center storage freeswitch ngcp-rtpengine-daemon

Обновите либо сведите конфигурационный файл OpenSIPS (если он был изменен вручную) и nginx:

curl https://git.webitel.com/projects/WEP/repos/opensips/raw/opensips.cfg \
    -o /etc/opensips/opensips.cfg
systemctl restart opensips

systemctl restart nginx