18 июня 2015

Asterisk and FreePBX High Availability. Часть I

Собираем 2 сервера Asterisk+FreePBX в отказоустойчивый кластер.


Для начала необходимо подготовить минимум 2 сервера на CentOS с установленными Астериском и ФриПБХ. Есть масса способов это сделать и это выходит за рамки этой статьи.
Самый простой способ развернуть готовый образ AsteriskNOW

Схема подключения будет такой:
  

Разрешаем астериску биндить не локальный IP (на обоих серверах):
echo 'net.ipv4.ip_nonlocal_bind=1' >> /etc/sysctl.conf
reboot

Устанавливаем необходимые пакеты (на обоих серверах). DRBD, Corosync, Pacemaker, CRM, Lsyncd:
cat <<-END >>/etc/yum.repos.d/centos.repo
[centos-6-base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
enabled=1
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
END

yum -y install tftp-server
sed -i 's/disable.*/disable\ =\ no/' /etc/xinetd.d/tftp
service xinetd restart

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
yum install -y pacemaker corosync cman

cd /etc/yum.repos.d/
wget http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-6/network:ha-clustering:Stable.repo

yum install -y crmsh

rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

yum -y install lsyncd

rpm -qa |grep -e pacemaker -e cman -e corosync -e crmsh -e heartbeat -e lsyncd
mkdir /etc/lsyncd/

Про сборку кластера из установленных пакетов расскажу во второй части...