Freepbx SSH резервирование для двух серверов (версии 15 и новее)
Администратор, 23.08.2021Резервное копирование и восстановление конфигураций для систем FreePBX (Asterisk) в версии 15 и выше.
Эта процедура используется для «синхронизации» конфигураций между первичным и вторичным сервером FreePBX. Также предполагается, что первичный сервер содержит самую последнюю конфигурацию, а вторичный сервер неактивен.
В этой статье предполагается следующее:
- У вас есть существующая система АТС, которая будет вашим основным сервером.
- У вас есть идентичная система АТС, которая будет вашим вторичным сервером.
- Два сервера могут обмениваться данными на уровне IP.
Настройка Warm Spare (Горячий бекап) на PBX 15+ изменилась по сравнению с предыдущими версиями.
Сейчас мы используем модули Filestore, API и Backup & Restore для конфигурации горячего резервного копирования, поэтому нам нужно убедиться, что все 3 упомянутых модуля присутствуют как на основном, так и на дополнительном сервере.
Как добавить резервный сервер на основной сервер
Процесс должен отправить данные с основного на резервный (горячий бекап). Мы можем использовать протокол FTP или SSH для выполнения этой задачи с помощью модуля Filestore (рекомендуемый путь - SSH).Конфигурация SSH
В этом разделе мы опишем, как настроить «SSH» для использования для установки Warm Spare.
Во-первых, мы настроим общие ключи между двумя серверами, чтобы они могли обмениваться данными через SSH через порт 22.
Начиная с PBX 15+ генерация ключей SSH для основного сервера не требуется. Модуль резервного копирования и восстановления сам позаботится о создании ключей SSH.
Но мы должны скопировать SSH-ключи первичного сервера на вторичный сервер, чтобы гарантировать, что первичный сервер может легко взаимодействовать с вторичным сервером.
Мы можем использовать любой из следующих 2 методов для копирования ключей SSH на вторичный (теплый резервный) сервер.
Вручную скопируйте ключи SSH на вторичный сервер -
«Графический интерфейс FreePBX -> Администратор → Резервное копирование и восстановление → Глобальные настройки» содержит SSH-ключи сервера, которые мы можем скопировать на вторичный сервер вручную. (обратите внимание, что некоторые браузеры не позволяют копировать эти данные)
Вы можете вручную скопировать этот ключ на резервный / дополнительный сервер в файл /root/.ssh/authorized_keys. Создайте файл с именем «authorized_keys» (если его нет) и добавьте в него свой открытый ключ. Если этот файл уже существует, просто добавьте свой ключ в конец файла (убедитесь, что каждый ключ отделен новой строкой!)
Использование команды SSH CLI для копирования первичных ключей SSH на вторичный сервер (предпочтительный метод)
Обратите внимание, что если вы делаете это из свежей установки и никогда не посещали модуль резервного копирования и восстановления, эти шаги не пройдут.Перед началом перейдите к модулю резервного копирования и восстановления в графическом интерфейсе пользователя, это инициирует создание ключей, указанных ниже.
В модуле щелкните вкладку глобальных настроек и убедитесь, что ключ присутствует, как показано выше.
Войдите на свой основной сервер с помощью клиента SSH, такого как PuTTy, SecureCRT или другого клиента SSH.
Мы скопируем ключ на вторичный сервер с помощью следующей команды, чтобы первичный сервер мог подключиться к вторичному серверу по SSH без пароля.
В командной строке Linux основного сервера введите: sudo -u asterisk ssh-copy-id -i /home/asterisk/.ssh/id_rsa.pub root @ SecondaryServerIP и введите пароль при появлении запроса.
Если эта команда завершится без ошибок, вы готовы к тестированию:
В командной строке введите: ssh -i /home/asterisk/.ssh/id_rsa root @ SecondaryServerIP.
Если все прошло хорошо, вы должны войти на вторичный сервер.
Настройка модуля хранилища файлов
После завершения настройки SSH нам нужно настроить модуль Filestore для SSH.Пожалуйста, перейдите в модуль Filestore, раздел # SSH, и выполните там настройку SSH на основном сервере.
Создание учетных данных API на сервере горячего резервирования
Нам необходимо сгенерировать учетные данные API на горячем резервном (или вторичном) сервере, которые будут использоваться первичным сервером для запуска процесса «восстановления» на горячий резервный сервер.Для копирования данных будет использоваться метод SSH или FTP, но для запуска процесса «восстановления» будет использоваться API.
Выполните следующие действия, чтобы сгенерировать учетные данные API горячего резервирования, которые будут использоваться позже в определении задания резервного копирования на основном сервере.
FreePBX GUI → Connectivity (Связь) → API
1) Создайте приложение Machine to Machine App

2) Разрешите области (gql: backup) получить доступ к модулю резервного копирования, а затем «Добавьте приложение».

3) Скопируйте данные доступа в блокнот или отредактируйте текст. Эта информация понадобится вам, когда мы настроим задание репликации на основном сервере.

Как настроить задание горячего резервного копирования
Cоздайте задание резервного копирования, как обычно, однако убедитесь, что вы добавляете свой сервер Warm Spare в качестве одного из мест хранения резервных копий (обратите внимание, что здесь вы можете выбрать несколько мест хранения)
Включите опцию Warm Spare

После того, как мы включим опцию «Warm Spare». Вы можете увидеть параметры конфигурации резервирования: NAT, транки, токены взаимодействия и тп
Выполнить горячее резервное задание
После создания задания резервного копирования мы можем увидеть задание резервного копирования в сетке резервного копирования и восстановления.

Мы можем либо выбрать запуск Warm Spare через «Опцию планирования» при создании или редактировании задания резервного копирования, либо его по клику.
Выходные данные задания горячего резервирования будут выглядеть примерно так, как показано ниже, а в конце «Состояние восстановления» будет отображаться ответ от API (который запустил процесс восстановления на сервере горячего резервирования).
