| | 468 | == Синхронизация файлов конфигурации и записей переговоров == |
| | 469 | |
| | 470 | Синхронизацию файлов конфигурации и записей переговоров сделаем с помощью rsync. Чтобы схема была симметричной, каждый из серверов будет копировать свои обновившиеся файлы на другой сервер. Копирование будет производиться по SSH. |
| | 471 | |
| | 472 | Для начала проверим, что в /etc/passwd пользователю freeswitch установлен реальный shell (а не /bin/false или что-то аналогичное). При необходимости установим шелл командой: |
| | 473 | |
| | 474 | {{{ |
| | 475 | $ sudo usermod -s /bin/sh freeswitch |
| | 476 | }}} |
| | 477 | |
| | 478 | Генерируем пользователю freeswitch rsa ключ для ssh: |
| | 479 | |
| | 480 | {{{ |
| | 481 | $ sudo su -l freeswitch |
| | 482 | $ ssh-keygen -t rsa -b 4096 |
| | 483 | }}} |
| | 484 | |
| | 485 | В результате в домашнем каталоге пользователя freeswitch будет создан файл {{{.ssh/id_rsa.pub}}}. Добавляем содержимое этого файла в файл {{{.ssh/authorized_keys}}} в домашнем каталоге пользователя freeswitch на другом сервере. Проверим, что пользователь freeswitch с одного сервера может войти по ssh на другой сервер без ввода пароля: |
| | 486 | |
| | 487 | {{{ |
| | 488 | $ sudo su -l freeswitch |
| | 489 | $ ssh <address> |
| | 490 | Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic x86_64) |
| | 491 | |
| | 492 | * Documentation: https://help.ubuntu.com |
| | 493 | * Management: https://landscape.canonical.com |
| | 494 | * Support: https://ubuntu.com/advantage |
| | 495 | Last login: Wed Feb 22 11:27:59 2017 from 192.168.0.61 |
| | 496 | $ |
| | 497 | }}} |
| | 498 | |
| | 499 | Теперь, когда каждый из серверов может соединиться по SSH со своим собратом, настроим синхронизацию файлов конфигурации и записей переговоров. Для этого добавим в /etc/crontab каждого сервера такие записи: |
| | 500 | |
| | 501 | {{{ |
| | 502 | */5 * * * * freeswitch rsync -au -e ssh /etc/freeswitch/ <address>:/etc/freeswitch/ |
| | 503 | */5 * * * * freeswitch rsync -au -e ssh /var/lib/freeswitch/recordings/ <address>:/var/lib/freeswitch/recordings/ |
| | 504 | }}} |
| | 505 | |
| | 506 | В вышеприведенном примере файлы синхронизируются каждые 5 минут. |
| | 507 | |
| | 508 | Для более равномерного распределения нагрузки на сеть можно настроить серверам разное время синхронизации, например: |
| | 509 | |
| | 510 | {{{ |
| | 511 | 0-59/5 * * * * freeswitch rsync -au -e ssh /etc/freeswitch/ ....... |
| | 512 | 1-59/5 * * * * freeswitch rsync -au -e ssh /var/lib/freeswitch/recordings/ ........ |
| | 513 | }}} |
| | 514 | |
| | 515 | на первом сервере и |
| | 516 | |
| | 517 | {{{ |
| | 518 | 2-59/5 * * * * freeswitch rsync -au -e ssh /etc/freeswitch/ ....... |
| | 519 | 3-59/5 * * * * freeswitch rsync -au -e ssh /var/lib/freeswitch/recordings/ ........ |
| | 520 | }}} |
| | 521 | |
| | 522 | на втором сервере. |
| | 523 | |
| | 524 | Проверим работу синхронизации: на первом сервере создадим новый файл в /var/lib/freeswitch/recordings/ и изменим какой-нибудь файл в /etc/freeswitch/. Подождем 5 минут и убедимся, что на втором сервере появился новый файл в /var/lib/freeswitch/recordings/ и отразилось изменение файла в /etc/freeswitch/. Аналогично |