Ввиду того факта, что как я пришел в компанию здесь в плане инфраструктуры IT был полный хаос, различные дистрибутивы на сервисах, отсутствие карты сети и где какие сервисы, отношение от сотрудников других отделов к отделу IT мягко говоря желает лучшего. Сейчас осталось проработать правильный перенос последнего сервиса, бизнес компании строиться на обработки результатов обзвона/приема звонков клиентов с последующим занесением данной информации в CRM систему именуемой, как VtigerCRM 5.2.1. А уже от туда строится статистика и перенаправление звонок в профильные отделы. Ранее я уже не раз говорил про vTigerCRM, но вот только в тех заметках которые я публиковал ранее:
- Установка
- Восстановление
Это все если честно не то, т. к. в корпоративной сети стоял не чистый vtiger, а комбайн из дистрибутива Elastix 2.5 версии и до установленного пакета vtiger.
Вот сейчас я и пройдусь по всем шагам установки/восстановления дабы все было задокументировано.
Скачиваю с официального сайта в разделе Download пакет предыдущего значения Elastix 2.5 для 64—битной версии системы на свою рабочую систему:
aollo@system:~$ wget https://sourceforge.net/projects/elastix/files/Elastix%20PBX%20Appliance20Software/2.5.0/latest/Elastix-2.5.0-STABLE-x86_64-bin-08may2015.iso
Теперь запускаю Virtualbox и подготавливаю виртуальную машину (RAM = 4Gb,CPU =1, HDD = 50Gb) под установку из скачанного на основную систему (Ubuntu 14.04.5 Trusty Desktop (Gnome Classic) amd64) образа дистрибутива Elastix 2.5.
- Имя: Elastix
- Тип: Linux
- Версия: Other Linux (64-bit)
Рекомендуемый объем оперативной памяти: 4096Mb
Запускаю данную VM:
- boot: нажимаю клавишу Enter
- Choose a Language: English
- Keyboard Type: us
- Would you like to initialize this drive, erasing ALL DATA? Yes
- Partitioning Type: Use free space on selected drives and create default layout, отмечаю свой диск и нажимаю OK
- Review and modify partitioning layout? No
- Would you like to configure the eth0 network interface in your system? Yes
- Network Configuration for eth0: отмечаю Activate on boot & Enable IPv4 support и нажимаю OK
- Тип получения IP адрес: Dynamic IP configuration (DHCP) и нажимаю OK
- Hostname Configuration: automatically via DHCP и нажимаю OK
- Time Zone Selection: Europe/Moscow
- Root Password:
Password: 712mbddr@
Password (confirm): 712mbddr@
и нажимаю OK
Cледом начинается выкачивание и установка необходимых пакетов состоящих в основе дистрибутива Elastix, ожидаю…
Затем потребуется указать пароль который будет на учетную запись root сервиса MySQL:
Please enter your new MySQL root password: 712mbdr@
Please (re) confirm your new MySQL root password: 712mbddr@
Затем потребуется указать пароль который будет на учетную запись admin в панель администрирования Elastix (http://IP&DNS):
Please enter your new password for freePBX ‘admin’: 712mbddr@
Please (re) confirm your new password for freePBX ‘admin’: 712mbddr@
После меня ожидает приглашение на вход в систему через консоль командной строки:
CentOS release 5.10 (Final)
Kernel 2.6.18-371.1.2.el5 on an x86_64
srv-elastix login: root
Password: 712mbddr@
Welcome to Elastix
[root@srv-elastix ~]#
[root@srv-elastix ~]# rm -f /etc/localtime
[root@srv-elastix ~]# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
[root@srv-elastix ~]# nano /etc/ntp.conf
server 0.pool.ntp.org
[root@srv-elastix ~]# /etc/init.d/ntpd restart
[root@srv-elastix ~]# ntpdate 0.pool.ntp.org
А доступ через Web-интерфейс выглядит так: https://IP&DNS:80/
Так с установкой Elastix на виртуальную машину я разобрался, нет ничего сложного, дистрибутив представляет из себя, сборку утилит для организации программной АТС где все компоненты подогнаны друг на друга и имеют модульную структуру. Может показаться, что использование дистрибутива лучше, но как по мне только если все сделаешь сам будет больше понимать, что и как устроено, а потому мой выбор: либо консольный Asterisk, либо Asterisk(+FreePBX) на системе Ubuntu. Я специализируюсь только на этом дистрибутиве, чем в сотнях различных.
Теперь нужно установить посредством дополнения пакет vtiger. Переходим на вкладку Addons и через поиск в Addon Market указываем Name: vtiger и нажимаем Enter, на выходе найденного получается что имеется пакет VtigerCRM — 5.2.1-9, напротив него имеется кнопка Install нажимаю ее.
Следом появляется окно Elastix Server Registration Form, заполняю его:
- Company: Ekzorchik
- Country: Russia
- City: Moscow
- Phone: <my_mobile>
- Contact Name: Ekzorchik
- Email: support@ekzorchik.ru
- Password: <my_password>
- Password Confirm: <my_password>
А после нажимаю Create Account и начинается установка пакета VtigerCRM
Теперь чтобы получить доступ к сервису vtigercrm нужно в браузере перейти на URL вида: https://IP&DNS/vtigercrm, где меня встречает довольно знакомое окно авторизации в системе, указываю:
- User Name: admin
- Password: 712mbddr@
- Color Theme: softed
- Language: US English
Ладно, интерфейс на английском и на первый взгляд идентичен устанавливаемому на Ubuntu Precise.
Но мне нужно накатить на текущий дистрибутив Elastix бекап сервиса vtigercrm чем и займусь ниже:
[root@srv-elastix ~]# mysql -u root -p712mbddr@ -e "show databases;"
+--------------------+
| Database |
+--------------------+
| information_schema |
| asterisk |
| asteriskcdrdb |
| endpointconfig |
| meetme |
| mya2billing |
| mysql |
| roundcubedb |
| test |
| vtigercrm521 |
+--------------------+
Как видно из вывода присутствует база vtigercrm521 точно также как и на сервере у меня, а потому мне понадобиться бекап с действующего сервера где сейчас имеет место быть работающий VtigerCRM установленный не мною. Мне же нужно проработать шаги по реанимированию сервиса.
Копирую с рабочей системы из подмонтированного файлового сервера бекап vtigercrm на новый сервер с установленным дистрибутивом Elastix 2.5:
aollo@system:~$ scp /media/soft/file/CRM/vtigercrm521.sql-2017-01-26.gzip root@10.7.8.78:/root/
Распаковываю архив:
[root@srv-elastix ~]# file vtigercrm521.sql-2017-01-26.gzip
vtigercrm521.sql-2017-01-26.gzip: bzip2 compressed data, block size = 900k
[root@srv-elastix ~]# tar xjf vtigercrm521.sql-2017-01-26.gzip
[root@srv-elastix ~]# ls sqlfiles/
vtigercrm521.sql
Восстанавливаю бекап базы в только что развернутую вместе с сервисом:
[root@srv-elastix ~]# mysql -u root -p712mbddr@ vtigercrm521 < sqlfiles/vtigercrm521.sql
После проверяю базу vtigercrm521 что в ней все таблицы не битые:
[root@srv-elastix ~]# mysqlcheck -u root -p712mbddr@ -c vtigercrm521
вывод во всем таблицам: OK
Копирую каталог /var/www/html/vtigercrm со старого сервера в новый:
[root@crm ~]# tar cPf vtigercrm.tar /var/www/html/vtigercrm
[root@crm ~]# scp vtigercrm.tar root@10.7.8.78:/root
Распаковываю заархивированный каталог и перемещаю его в путь где располагаются файлы сервиса vtigercrm на новом сервере:
[root@srv-elastix ~]# mkdir vtigercrm
[root@srv-elastix ~]# tar -xf vtigercrm.tar -C vtigercrm
[root@srv-elastix ~]# mv vtigercrm/var/www/html/vtigercrm/ /var/www/html/vtigercrm/
Теперь правлю конфигурационный файл где нужно проверить наличие правильных данных взаимодействия сервиса vtigercrm с базой данных:
[root@srv-elastix ~]# nano /var/www/html/vtigercrm/config.inc.php
$dbconfig['db_server'] = 'localhost';
$dbconfig['db_port'] = ':3306';
$dbconfig['db_username'] = 'root';
$dbconfig['db_password'] = '712mbddr@';
$dbconfig['db_name'] = 'vtigercrm521';
$dbconfig['db_type'] = 'mysql';
$dbconfig['db_status'] = 'true';
Поправляю права доступа на каталог vtigercrm:
[root@srv-elastix ~]# chown -R asterisk:asterisk /var/www/html/vtigercrm/
[root@srv-elastix ~]# nano /etc/httpd/conf/httpd.conf
ServerName srv-elastix
[root@srv-elastix ~]# /etc/init.d/httpd restart
Для справки: версии php и mysql на сервере:
[root@srv-elastix ~]# php --version
PHP 5.1.6 (cli) (built: Nov 6 2014 12:25:07)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
[root@srv-elastix ~]# mysql --version
mysql Ver 14.12 Distrib 5.0.95, for redhat-linux-gnu (x86_64) using readline 5.1
После чего возвращаюсь к открытой вкладке браузера (https://IP&DNS:80/vtigercrm ) и обновляю страницу (Клавиша F5), предо мной снова окно авторизации, но на этот раз в качестве аутентификационных данных нужно вводить данные от старого сервиса vtigercrm развернутого не мною на дистрибутиве Elastix 2.5:
- User Name: admin
- Password: <пароль_который_был>, хотя его можно сбросить по заметке.
- Color Theme: softed
- Language: теперь в выборе присутствует «RU Русский» который и выбираю.
После чего нажимаю Sign in и я проваливаюсь в русско-язычный интерфейс имеющего место быть сервиса vtigercrm но теперь уже в моем практическом исполнении. Проверив все с чем приходилось сталкиваться — вывод: все хорошо, можно от не моего избавляться и разворачивать свое, т. к. только в своем я уверен полностью.
Но рано заканчивать заметку, нужно дополнить ее процедурой создания резервной копии.
Бекапить нужно: базу + каталог vtigercrm.
[root@srv-elastix ~]# mkdir /backup
[root@srv-elastix ~]# mysqldump -u root -p712mbddr@ vtigercrm521 | gzip -9 > /backup/vtigercrm521_$(date '+%d_%m_%Y').sql.gz
[root@srv-elastix ~]# ls -lh /backup/vtigercrm521_27_01_2017.sql.gz
-rw-r—r— 1 root root 15M Янв 27 09:32 vtigercrm521_27_01_2017.sql.gz
[root@srv-elastix ~]# tar czfP /backup/vtigercrm_$(date '+%d_%m_%Y').tgz /var/www/html/vtigercrm/
[root@srv-elastix ~]# ls -lh /backup/vtigercrm_27_01_2017.tgz
-rw-r—r— 1 root root 98M Янв 27 09:59 /backup/vtigercrm_27_01_2017.tgz
Теперь копирую данные бекапы на файловое хранилище Synology DS414:
[root@srv-elastix ~]# mkdir /media/backup
[root@srv-elastix ~]# nano /etc/fstab
//SynologyDS414/BACKUP /media/backup cifs iocharset=utf8,codepage=cp866,username=<domain_login>,domain=<domen>,password=<domain_password> 0 0
[root@srv-elastix ~]# mount -a && df -h | grep /media/crm
//SynologyDS414/BACKUP 11T 5,9T 5,0T 54% /media/backup
[root@srv-elastix ~]# rsync -a /backup/* /media/backup/crm/
Храним бекапы на сервере Elastix не более 30 дней:
[root@srv-elastix ~]# find /backup/ -maxdepth 1 -type f -mtime +30 -exec rm -f {} \;
Итого, я рассмотрел самостоятельно, что нужно чтобы правильно восстановить из резервной копии сервис vtigercrm версии 5.2.1, как оказалось уже в последствии установка с нуля которую я использовал заметками ранее отличается, некоторые меню перевода на русский язык не соответствуют старому и новому на серверах.
Раз все шаги успешно обкатаны по такому же принципу я смогу развернуть сервис не на физическом сервере, как он был, а на виртуальную инфраструктуру ESXi опираясь на все выше изложенное в этой заметке.
Что еще могу добавить, каждый на основе этого уже сам добавить в планировщик строки по резервному копированию или с учетом что бекапы маленькие просто будет раз в месяц заходить или регламенту и проверять, а затем удалять уже не актуальные. Если все автоматизировать, то может случиться, что присутствует чувство что все хорошо, а на самом деле будет больно осознать обратное. Ладно, до новых встреч, с уважением автор блога Олло Александр aka ekzorchik.