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"
Синхронизация Баз Данных FreePBX
Настроим резервный сервер (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