Введение
Как вы, возможно, знаете, недавно была представлена ОС Linux Debian 9 Stretch, получившая множество замечательных обновлений: поддержка нового оборудования, улучшения в менеджере пакетов apt, улучшения системы безопасности и другие.
У наших клиентов возникает вопрос: должны ли мы продолжать работать с Debian 8 или можно как-то обновить систему 3CX на платформу Debian 9?
Разумеется можно! Прежде всего, рекомендуем попробовать ISO образ 3CX, в котором уже используется Debian 9 вместе с последней версией сервера 3CX.
Однако, если у вас уже работает сервер телефонии, и вы просто хотите обновить ОС, используйте приведенные ниже инструкции.
Обновление Debian
Данные инструкции касаются систем, использующих стоковый Debian 8 или ISO образ 3CX for Debian 8. Если вы устанавливали дополнительные пакеты или использовали систему для других задач, кроме 3CX, учитывайте это при обновлении.
Итак, приступим!
Да начала очистим apt кэш, чтобы освободить место для установки обновлений.
apt-get clean
Теперь установим последние обновления на Debian 8. Это позволит начать переход на Debian 9 с наиболее свежей сборки Debian 8 и избежать возможных проблем. Это стандартная рекомендация при обновлении.
apt -y --force-yes update
apt -y --force-yes upgrade
Перейдем в репозиторий 3CX Stretch (до этого использовался репозиторий 3CX Jessie).
echo "deb http://downloads.3cx.com/downloads/debian stretch main" | tee /etc/apt/sources.list.d/3cxpbx.list
Команда sed находит все записи с именем «jessie» в /etc/apt/sources.list и заменяет его на «stretch»:
sed -i s/jessie/stretch/g /etc/apt/sources.list
Теперь обновим и переиндексируем репозиторий.
apt -y --force-yes update
Удалим пакеты 3CX, чтобы начать обновление чистой системы Linux. Удаление программных пакетов 3CX не удаляет конфигурацию и данные 3CX!
apt -y --force-yes remove 3cxpbx
Запустим обновление ОС на Stretch.
apt -y --force-yes upgrade
В процессе обновления появится несколько вопросов. Если вы не имеете опыта работы с Linux, лучше всего просмотреть это видео, чтобы понять, какие опции выбрать.
Далее запустим процесс автоматического восстановления связей между зависимостями.
apt -y --force-yes dist-upgrade
В данный момент Debian обновлена, зависимости в порядке и компоненты 3CX удалены (кроме данных). Осталось разобраться с версий базы данных Postgress.
Debian Stretch поставляется в более новой версией БД Postgress (9.6), чем та, которую 3CX использовала в Debian Jessie (9.4). Сперва убедимся, что в системе установлена последняя версия Postgress.
apt -y --force-yes install postgresql-9.6 postgresql-client-9.6
Останавливаем старый кластер
pg_dropcluster --stop 9.6 main
и обновляем его
pg_upgradecluster 9.4 main
Установим остальные зависимости 3CX (libcurl).
apt -y --force-yes install libcurl3=7.38.0-4+deb8u5
А теперь, когда все готово, можно установить 3CX.
apt -y --force-yes install 3cxpbx
Проверка системы и удаление лишних компонентов
Проверим, что 3CX установлена и успешно запущена. Подключитесь к интерфейсу управления и убедитесь, что все настройки сохранились, сервисы 3CX работают и т.п.
Если все в порядке, стоит удалить лишние компоненты, в частности старый кластер 9.4.
pg_dropcluster --stop 9.4 main
Удалим другие компоненты предыдущей системы. Они уже неактуальны, и вы просто освобождаете место на диске.
apt-get -y --force-yes autoremove
Снова очистим кэш пакетов, чтобы оставить побольше места для 3CX
apt-get clean
и перезапустим систему
shutdown -r now
Проверим, что система Debian обновлена (должно показать версию 9.2)
cat /etc/debian_version
Проверка версии ядра
uname -a
Должна выдать примерно такое
Linux mydebian 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2+deb9u2 (2017-06-26) x86_64 GNU/Linux
Готовый скрипт
Как видите, ничего сложного. Но чтобы упростить вам жизнь, мы предлагаем готовый скрипт update.sh, который сделает все это автоматически. Его также стоит использовать, если вы обслуживаете много систем 3CX.
Сохраните его на диске, а затем выполните команду, которая сделает его исполняемым,
Chmod 777 ./update.sh
и выполните
./update.sh
Заключение
Надеюсь, это руководство будет полезно, особенно для системных администратором с небольшим опытом работы в Linux. Я еще раз рекомендую просмотреть видеоролик, где описывается работа этого скрипта. В ролике можно включить перевод титров на русский.