PBX-IN-A-FLASH Redundancy
There are several ways to go about creating a redundant PIAF setup. I am fortunate enough to have access to a MySQL cluster so I am taking advantage of it. You can also use MySQL replication between two PIAF boxes. That is a topic for another post.
This post is geared towards those already familiar with Linux. When I have more time I may create step by step instructions for those that aren’t so familiar with Linux.
Solution:
1. Export the local DB called ‘asterisk’ to a file on PIAF server a
2. Import the file containing the SQL for the ‘asterisk’ DB to the MySQL cluster.
3. Modify necesarry variables in /etc/amportal.conf on server a to point to the MySQL cluster.
4. Restart amportal to ensure MySQL access is working as expected.
5. Enable SSH key based authentication between server a and server b and drop the keys in /root/cron
6. Copy the following two scripts to /root/cron on server b
update_host.sh # cat rsync_script #!/usr/bin/sh echo "Starting /var/lib/asterisk" /usr/bin/rsync -a -e "ssh -i /root/cron/asterisk2-rsync-key" \ root@servera:/var/lib/asterisk/ /var/lib/asterisk/ echo "Finished /var/lib/asterisk" echo "" echo "Starting /usr/local/apache/passwd/wwwpasswd" /usr/bin/rsync -a -e "ssh -i /root/cron/asterisk2-rsync-key" \ root@servera:/usr/local/apache/passwd/wwwpasswd /usr/local/apache/passwd/wwwpasswd echo "Finished /usr/local/apache/passwd/wwwpasswd" echo "" echo "Starting /etc/asterisk/" /usr/bin/rsync -a -e "ssh -i /root/cron/asterisk2-rsync-key" \ root@servera:/etc/asterisk/ /etc/asterisk/ echo "Finished /etc/asterisk/" echo "" echo "Starting /var/www" /usr/bin/rsync -a -e "ssh -i /root/cron/asterisk2-rsync-key" \ root@servera:/var/www/ /var/www/ echo "Finished /var/www" echo "" echo "Starting /usr/lib/asterisk" /usr/bin/rsync -a -e "ssh -i /root/cron/asterisk2-rsync-key" \ root@servera:/usr/lib/asterisk/ /usr/lib/asterisk/ echo "Finished /usr/lib/asterisk" echo "" echo "Starting /etc/amportal.conf" /usr/bin/rsync -a -e "ssh -i /root/cron/asterisk2-rsync-key" \ root@servera:/etc/amportal.conf /etc/amportal.conf echo "Finished /etc/amportal.conf" echo "" echo "Reloading Asterisk configs from MySQL" /var/lib/asterisk/bin/module_admin reload echo "Reload Successful" echo "" echo "Starting removal of SIP registrations" rm /etc/asterisk/sip_registrations.conf echo "sip_registrations.conf removed" echo "" echo "Reloading Asterisk" /usr/sbin/asterisk -rx reload echo "Reload Successful" echo ""
promote_primary.sh # cat rsync_script #!/usr/bin/sh echo "Starting /var/lib/asterisk" /usr/bin/rsync -a -e "ssh -i /root/cron/asterisk2-rsync-key" \ root@servera:/var/lib/asterisk/ /var/lib/asterisk/ echo "Finished /var/lib/asterisk" echo "" echo "Starting /usr/local/apache/passwd/wwwpasswd" /usr/bin/rsync -a -e "ssh -i /root/cron/asterisk2-rsync-key" \ root@servera:/usr/local/apache/passwd/wwwpasswd /usr/local/apache/passwd/wwwpasswd echo "Finished /usr/local/apache/passwd/wwwpasswd" echo "" echo "Starting /etc/asterisk/" /usr/bin/rsync -a -e "ssh -i /root/cron/asterisk2-rsync-key" \ root@servera:/etc/asterisk/ /etc/asterisk/ echo "Finished /etc/asterisk/" echo "" echo "Starting /var/www" /usr/bin/rsync -a -e "ssh -i /root/cron/asterisk2-rsync-key" \ root@servera:/var/www/ /var/www/ echo "Finished /var/www" echo "" echo "Starting /usr/lib/asterisk" /usr/bin/rsync -a -e "ssh -i /root/cron/asterisk2-rsync-key" \ root@servera:/usr/lib/asterisk/ /usr/lib/asterisk/ echo "Finished /usr/lib/asterisk" echo "" echo "Starting /etc/amportal.conf" /usr/bin/rsync -a -e "ssh -i /root/cron/asterisk2-rsync-key" \ root@servera:/etc/amportal.conf /etc/amportal.conf echo "Finished /etc/amportal.conf" echo "" echo "Reloading Asterisk configs from MySQL" /var/lib/asterisk/bin/module_admin reload echo "Reload Successful" echo ""
7. Run update_host.sh on serverb This copies the configs from server a to server b minus the sip registrations
8. If you want to promote server b to primary (registering to SIP providers for inbound calls) run promote_primary.sh
Recent Comments