Перенос ABillS на другой сервер

На тесте выполню перенос биллинговой системы ABillS с одного сервера на другой.

Сначала, закомментируем watchdog если он настроен и периодические задания в cron, остановим apache2 чтобы не проходили онлайн платежи.
Сделаем резервную копию базы данных, файлов биллинга и директории с конфигурациями:

service apache2 stop
/usr/abills/libexec/periodic backup
cd /root/
tar -cvjf /root/abills_`date +%Y-%m-%d`.tar.bz2 /usr/abills/
tar -cvjf /root/etc_`date +%Y-%m-%d`.tar.bz2 /etc/

Если сервер высоконагружен, первый раз для теста, можно выполнить с пониженным приоритетом использования дисковой системы и CPU:

nice -n 19 ionice -c2 -n7 /usr/abills/libexec/periodic backup
nice -n 19 ionice -c2 -n7 tar -cvjf /root/abills_`date +%Y-%m-%d`.tar.bz2 /usr/abills/
nice -n 19 ionice -c2 -n7 tar -cvjf /root/etc_`date +%Y-%m-%d`.tar.bz2 /etc/

Скопируем резервные копии на новый сервер в домашнюю директорию пользователя:

scp -P 22 /usr/abills/backup/stats-`date +%Y-%m-%d`.sql.gz user@192.168.5.5:~
scp -P 22 /root/abills_`date +%Y-%m-%d`.tar.bz2 user@192.168.5.5:~
scp -P 22 /root/etc_`date +%Y-%m-%d`.tar.bz2 user@192.168.5.5:~

На новом сервере частично выполним установку ABillS как я описывал в этой статье — Установка и настройка биллинговой системы ABillS

Не забываем перенести конфигурацию Apache2 /etc/apache2/sites-enabled/abills_httpd.conf

Также перенести или установить SSL сертификат, например от Let’s Encrypt, как я описывал в статье — Установка Certbot в Ubuntu

На новом сервере создадим MySQL базу данных и пользователей, распакуем архив с резервной копией и импортируем его:

mysql --default-character-set=utf8 -u root -p
drop database abills;
CREATE DATABASE abills DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
flush privileges;
quit
gzip -d stats-`date +%Y-%m-%d`.sql.gz
tar -xvjf stats_`date +%Y-%m-%d`.tar.bz2
mysql -D abills < stats-`date +%Y-%m-%d`.sql

Если SQL файл большой и чтобы видеть статус импорта, можно воспользоваться утилитой PV:

apt install pv
pv stats-`date +%Y-%m-%d`.sql | mysql -u root -D abills

Проверим целостность базы данных и выполним скрипт который поможет найти ошибки:

cd /usr/abills/misc/db_check
./db_check.pl
cd /usr/abills/misc/
perl perldeps.pl apt-get -batch
cd /usr/abills/misc/
./post-install.sh

Проверим логи:

/usr/abills/var/log/sql_errors
/var/log/httpd/abills-error.log

Проверим работу дополнительных модулей, в том числе платежных, если биллинг еще и обновлялся, то свои шаблоны лучше удалить и потом внести изменения в новых, так как в новых версиях ABillS в шаблонах могут быть добавлены новые поля, функции и т.д.
В FreeRadius укажем новый адрес базы данных биллинга и перезапустим его.

Проверим нет ли ошибок при выполнении billd:

/usr/abills/libexec/billd -all DEBUG=5

Когда все настроено переносим задания в /etc/crontab

Did my article help you? How about buying me a cup of coffee as an encouragement? Buy me a coffe.

Оставьте комментарий

Добавить комментарий