FreePBX: Backup and Restore

Модуль для создания резервных копий и восстановления конфигурации FreePBX.

backup templates

Есть несколько предустановленных шаблонов для резервирования различных данных FreepBX

  • CDR шаблон
    • включает в себя детализированный отчет о звонках (База данных MySQL «asteriskcdrdb»)
  • Config Backup шаблон
    • включает в себя конфигурацию АТС (База данных MySQL «asterisk»)
    • не содержит кастомных файлов *_custom.conf из директории /etc/asterisk/
  • Full Backup шаблон
    • включает CDR шаблон
    • Config Backup шаблон
    • резервирует директорию назначенную переменной __ASTETCDIR__, по умолчанию "/etc/asterisk" и все её поддиректории и файлы.
    • резервирует директорию назначенную переменной __AMPWEBROOT__, по умолчанию "/var/www/html" и все её поддиректории и файлы FreePBX.
    • резервирует директорию "/etc/dahdi"
    • Не резервирует системные голосовые сообщения и голосовую почту.
  • System Audio шаблон
    • резервирует директорию назначенную переменной __ASTVARLIBDIR__/moh, по умолчанию "/var/lib/asterisk/moh" и все её поддиректории и файлы.
    • резервирует директорию назначенную переменной __ASTVARLIBDIR__/sounds/custom, по умолчанию "/var/lib/asterisk/sounds/custom" и все её поддиректории и файлы.
  • VoiceMail шаблон
    • резервирует директорию назначенную переменной __ASTSPOOLDIR__/voicemail, по умолчанию "/var/spool/asterisk/voicemail", и все её поддиректории и файлы.

backup storage locations

Места сохранения бэкапов можно просмотреть и отредактировать кликнув «Servers» в правом верхнем углу страницы.
По умолчанию заданы два хранилища для резервных файлов.

  • Local Storage (local) обычно используется эта опция.
    • Архив резервной копии хранится в "/var/spool/asterisk/backup/(backupjobname)/*.tgz" на локальной машине.
  • Legacy Backup (local)
    • Для бэкапов сделанных в прежних версиях FreePBX ранее 2.10

Можно создать дополнительные хранилища для отправки бэкапов по e-mail, на удаленный FTP или TFTP сервер или на удаленный MySQL сервер.

Данный бэкап резервирует полную конфигурацию АТС, Voicemail и системные аудио файлы каждую полночь.

  • Backups
    • Кликните "New Backup"
  • Backup
    • Backup Name: «full»
    • Description: "Config, VoiceMail, System Audio"
  • Items
    • перетащите мышкой следующие шаблоны на «Type Path/DB Exclude Delete».
    • «Full Backup»
    • «System Audio»
    • «Voice Mail»

  • Backup Server
    • выберите "This server"
  • Storage Locations
    • перетащите мышкой "Local Storage (local)" из «Available Servers» в «Storage Servers».
  • Backup Schedule
    • Run Automatically: выберите «Daily» (время автоматически будет выставлено 00:00 )
  • Maintenance
    • «Delete after»: 21 days (сохранять три недели)
    • «Delete after»: 0 runs (не очищать журнал резервного копирования после заданного кол-ва запусков)
  • Save
  • Кликните Backups
    • выберите требуемый бэкап (например "full" в примере)
  • Кликните «and Run»
    • Ход выполнения бэкапа отобразится во всплывающем окне

  • нажмите ОК по готовности
[root@localhost backup]# ls -la /var/spool/asterisk/backup/full
total 4836
drwxr-xr-x. 2 asterisk asterisk    4096 Apr  1 16:35 .
drwxr-xr-x. 4 asterisk asterisk    4096 Apr  1 16:35 ..
-rw-r--r--. 1 asterisk asterisk 4941450 Apr  1 16:35 20140401-163539-1396355739-88966367.tgz
  • Restore ()
    • Local Storage(local)

Выберете требуемый бэкап и нажмите "Go"

Настроим резервный сервер (asterisk2) таким образом, чтобы он подключался к основному серверу (asterisk1) по SSH
и синхронизировал настройки asterisk, autoprovision и др.

Настройка SSH подключения

В данном примере Asterisk и Web server работают из под пользователя asterisk.

Зададим временный пароль пользователю asterisk
На основном сервере asterisk1

#chsh -s /bin/bash asterisk
#passwd asterisk
somepassword
#chmod 755 /var/lib/asterisk

Сгенерируем ssh ключ на резервном сервере Asterisk2

#chsh -s /bin/bash asterisk
#su asterisk
$ssh-keygen

Команда ssh-keygen создаст ключ в /home/asterisk/.ssh/ip_rsa

Не вводите passphrase, оставьте пустым:

]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/asterisk/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/asterisk/.ssh/id_rsa.
Your public key has been saved in /home/asterisk/.ssh/id_rsa.pub.
The key fingerprint is:
84:a8:1b:6f:2c:56:91:d5:d2:12:8f:8f:28:78:07:4e asterisk@asterisk2
The key's randomart image is:
+--[ RSA 2048]----+
|      o+         |
|     +o+o        |
|  A + o+o        |
| + o o +         |
|. * + . D        |
| . O             |
|  + +            |
| . o             |
|                 |
+-----------------+

Кода ключ создан, скопируем его на основной сервер:

 $ssh-copy-id -i asterisk@asterisk1_IP

Будет запрошен пароль, заданный для пользователя asterisk на основном севере.

[asterisk@asterisk2 root]$ ssh-copy-id -i asterisk@192.168.1.201
The authenticity of host '192.168.1.201 (192.168.1.201)' can't be established.
RSA key fingerprint is 61:44:a0:40:78:33:2a:b5:ec:eb:5f:55:36:39:8b:4d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.201' (RSA) to the list of known hosts.
asterisk@192.168.1.201's password:
Now try logging into the machine, with "ssh 'asterisk@192.168.1.201'", and check                                  in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

Проверим подключение по ssh с ключом:

[asterisk@asterisk2 root]$ ssh asterisk@192.168.1.201
[asterisk@asterisk1 ~]$

Если произошло подключение к основному серверу без пароля, все в порядке.

В завершении настройки SSH подключения, удалим пароль пользователя asterisk на основном сервере (asterisk1).

 passwd -d asterisk

И перейдем к настройке автоматической синхронизации FreePBX

Выберете на резервном сервере <fs large>Admin > Backup & Restore > Servers - New SSH Server</fs>

Hostname - ip адрес основного сервера Asterisk1

Port - порт ssh

User Name - пользователь, в нашем случае asterisk

Key - местонахождение ключа (/home/asterisk/.ssh/id_rsa)

Затем выберите <fs large>Admin > Backup & Restore > Backups - New Backup</fs>

Задайте имя и перетащите шаблоны для настроек:

в нашем примере это <fs large>Full Backup</fs> и <fs large>Exclude Backup Settings</fs>

Местонахождение директории tftp сервера, где лежат файлы для autoprovision, изменена с /tftpboot на /var/lib/tftpboot.

Задайте в соответствии с вашими условиями.

И в завершении укажем созданный нами Backup Server (asterisk1)
и хранилище - Local Storage (local)

Restore Here - записать скачанный бэкап в базу данных asterisk

Disable Registered Trunks - отключить зарегистрированные транки, во избежание проблем с входящими вызовами на основном сервере.

Exclude NAT Settings - Исключить специфические настройки IP основного сервера.

Apply Config - Применить скачанный бэкап (записать в конфиги asterisk)

Сохраним Save и проверим немедленно and Run

FreePBX

  • freepbx/backup.txt
  • Последние изменения: 2018/11/17