FreePBX(asterisk) кластеризация

FreePBX(asterisk) кластеризация является очень задачей. Часто возникает необходимость создать кластер высокой доступности для УАТС Asterisk. Для УАТС на базе FreePBX есть коммерческий модуль кластеризации FreePBX High Availability. Но, на данный момент это решение платное. Ниже мы приведем пример простой настройки кластера. В данном примере есть свои минусы, но вы легко сможете адаптировать все под конкретные нужны.

FreePBX High Availability

Подготовка

Первым этапом будет установка двух FrePBX на разные машины. Устанавливаться будет FreePBX Distro. Как установить мы рассказывали ранее в статье Установка asterisk(FreePBX). После установки обновим обе системы до актуальной версии.

ВАЖНО:  в идеальных устловиях, так же потребуется отдельный mysq сервер, что значительно может упростить жизнь.

Далее заходим в web интерфейс, только что установленных УАТС, для этого откроем браузер и перейдем по следующему пути.

Произведем активацию системы и первичную настройку брендмауэра.

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

Установка пакетов

Установим кластерные пакеты на всех нодах кластера

Добавим сервис в брендмауэр.

Для firewalld:

Для iptables:

Запуск кластера

Но, данные правила могут не потребоваться, так как машины в одной сети и скорее всего в первоначальной настройке брендмауэера вы указали сеть между ними как доверенную.

После установки пакетов и настройки брендмауэера, сбросим пароль пользователя hacluster:

Вместо redhat придумываем и указываем свой пароль.

Запускаем сервис кластеризации на всех нодах и добавляем в автозагрузку:

systemctl start pcsd
systemctl enable pcsd

После произведем авторизацию наших нод:

ПРИМЕЧАНИЕ: node1 и node2 должны соответсвовать именам хостов нод. Так же потребуется добавить имена всех нод в файл hosts, как показано ниже.

freepbx HA hosts

После внесения изменений в файл hosts на обеих нодах, можно проверить доступность запустив пинг, по имени ноды а не по ip адресу.

В нашем примере ноды имеют имена freepbx-node1 и freepbx-node2.

После ввода команды авторизации, потребуется ввести пароль ранее заданный для пользователя hacluster, в примере это «redhat».

Далее определим имя кластера и запустим синхронизацию corosync:

Как и ранее node1 и node2 имена наших нод, а mycluster имя кластера.

На первой ноде запускаем кластер:

Проверить статус кластера можно командой:

pcs status

На картинке выше, статус кластера с уже добавленными ресурсами.

Установим свойства кластера:

Создадим ресурс кластера:

Данный ресурс создает виртуальный сетевой интерфейс по которому доступна первая нода, но при ее недоступности интерфейс запустится на второй ноде нашего кластера.

Посмотреть список всех ресурсов можно командой:

Синхронизация конфигурации freepbx.

Произведем синхронизацию конфигурации серверов. Путем создания бекапа первой ноды и заливки на вторую ноду.

Первым делом настроим ssh соединение между серверами. Зададим временно пароль для пользователя asterisk, на основном сервере:

Изменим права:

Затем на резервном сервере произведем генерацию ssh ключа:

Приведенная выше команда сгенерирует ключ в файл :

После генерации скопируем ключ на основной сервер:

ip-node1 надо заменить на ip адрес первой ноды. Далее проверяем, подключаемся по ssh к первому серверу от имени пользователя asterisk:

После сбрасываем пароль пользователя asterisk:

Теперь заходим в web интерфейс freepbx. Нажимаем на Admin, далее переходим к Backup & Restore. Затем в меню с правой стороны нажимаем Servers.

На второй ноде добавляем ssh сервер.

Далее заполняем поля.

Указываем имя сервера, и папку куда сохранять бекап, описание заполняется по своему усмотрению.

Затем возврощаемся к пункту Backup and Restore и создаем новый бекап.

Далее перетаскиваем Full Backup в поле item.

Затем выбираем сервер бекапов и выбираем восстановить.

Далее вбираем хранилище.

Затем нажимаем сохранить и запустить, после успешного создания и развертывания мы получим 2 полностью идентичных сервера. А так как мы добавили ресурс в pacemaker виртуальный ip адрес, то при недоступности первого сервера второй поднимет виртуальный интерфейс с ip адресом который мы указали. Данное решение не идеальное и требует доработки, в ввиду того что оно несовмем подходит для freepbx distro. Но прмиенив творческий подход можно адаптировать и автоматизировать все что потребуется.

Вам также может понравиться

About the Author: Администратор

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *