| 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/. Аналогично |