Upgrade Notes 22.03-22.05

In this release, the transition to a new version of chat services was implemented, as well as the migration of databases to PostgreSQL version 14

backup

Be sure to back up the database before upgrading the system

Update algorithm

  1. Complete stop of all Webitel services
  2. Connecting a new repository Webitel v22.05
  3. Preparing PostgreSQL 12 and installing a new version of PostgreSQL 14
  4. Database migration from PostgreSQL 12 to 14
  5. Deleting the old version of PostgreSQL 12 and starting PostgreSQL 14
  6. Database migration from Webitel v22.03 to v22.05
  7. Removing old services Webitel v22.03
  8. Installing and updating Webitel services v22.05
  9. Starting all updated services Webitel v22.05

Complete stop of all Webitel services

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

Connecting a new repository 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

Preparing PostgreSQL 12 and installing a new version of 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

Database migration from PostgreSQL 12 to 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

Making changes to files /etc/postgresql/14/main/postgresql.conf and /etc/postgresql/14/main/pg_hba.conf

Deleting the old version of PostgreSQL 12 and starting 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';"

You may need to update passwords for other database users.

Database migration from Webitel v22.03 to 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

Removing old services 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

Installing and updating Webitel services 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

Starting all updated services 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 nginx

Update or merge the OpenSIPS configuration file (if it was changed manually) and nginx:

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

systemctl restart nginx