This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
asterisk_в_отказоустойчивой_конфигурации [2019/04/12 14:24] val [Базовая настройка узлов] |
asterisk_в_отказоустойчивой_конфигурации [2025/07/25 12:29] (current) val [Asterisk в отказоустойчивой конфигурации] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Asterisk в отказоустойчивой конфигурации ====== | ====== Asterisk в отказоустойчивой конфигурации ====== | ||
| - | * Вебинар не про Asterisk))) а реклама курса [[https://www.specialist.ru/course/un5|Linux. Уровень 6. Создание отказоустойчивых кластерных решений.]] | + | * Вебинар не столько про Asterisk, сколько реклама курса [[https://www.specialist.ru/course/un5|Linux. Уровень 6. Создание отказоустойчивых кластерных решений.]] |
| - | ===== Анализ сети в классе/дома ===== | + | ===== Анонс ===== |
| + | * [[https://www.specialist.ru/news/4815/besplatnij-seminar-asterisk-v-otkazoustojchivoj-konfiguracii|Бесплатный семинар «Asterisk в отказоустойчивой конфигурации»]] | ||
| + | |||
| + | ===== Запись вебинара ===== | ||
| + | * [[https://youtu.be/U-LOU6dkBqs|Запись вебинара]] | ||
| + | ===== Шаг 1. Анализ сети в классе/дома ===== | ||
| <code> | <code> | ||
| Line 11: | Line 16: | ||
| </code> | </code> | ||
| - | ===== Базовая настройка узлов ===== | + | ===== Шаг 2. Базовая настройка узлов ===== |
| - | * Импортируем два узла из [[http://val.bmstu.ru/unix/img/My%20Documents/debian_9.5_64_03.ova|образа]] | + | * Импортируем два узла из [[http://val.bmstu.ru/unix/img/My%20Documents/debian_9.5_64_03.ova|образа]] в [[https://www.virtualbox.org/|VirtualBox]] |
| * Называем node1 и node2 | * Называем node1 и node2 | ||
| * Подключаем к сети класса/дома | * Подключаем к сети класса/дома | ||
| Line 26: | Line 31: | ||
| 127.0.0.1 localhost | 127.0.0.1 localhost | ||
| - | 10.5.12.114 node1 | + | 10.5.7.114 node1 |
| - | 10.5.12.214 node2 | + | 10.5.7.214 node2 |
| </code><code> | </code><code> | ||
| node1:~# cat /etc/resolv.conf | node1:~# cat /etc/resolv.conf | ||
| </code><code> | </code><code> | ||
| - | nameserver 10.5.12.254 | + | nameserver 10.5.7.254 |
| </code><code> | </code><code> | ||
| node1:~# cat /etc/network/interfaces | node1:~# cat /etc/network/interfaces | ||
| Line 40: | Line 45: | ||
| auto eth0 | auto eth0 | ||
| iface eth0 inet static | iface eth0 inet static | ||
| - | address 10.5.12.114 | + | address 10.5.7.114 |
| netmask 255.255.255.0 | netmask 255.255.255.0 | ||
| - | gateway 10.5.12.254 | + | gateway 10.5.7.254 |
| </code><code> | </code><code> | ||
| node1:~# init 6 | node1:~# init 6 | ||
| Line 73: | Line 78: | ||
| auto eth0 | auto eth0 | ||
| iface eth0 inet static | iface eth0 inet static | ||
| - | address 10.5.12.214 | + | address 10.5.7.214 |
| netmask 255.255.255.0 | netmask 255.255.255.0 | ||
| - | gateway 10.5.12.254 | + | gateway 10.5.7.254 |
| </code><code> | </code><code> | ||
| node2:~# init 6 | node2:~# init 6 | ||
| Line 81: | Line 86: | ||
| node2:~# apt update | node2:~# apt update | ||
| </code> | </code> | ||
| - | ===== Сервис DRBD ===== | + | ===== Шаг 3. Сервис DRBD ===== |
| <code> | <code> | ||
| Line 111: | Line 116: | ||
| device /dev/drbd0; | device /dev/drbd0; | ||
| disk /dev/sdb; | disk /dev/sdb; | ||
| - | address 10.5.12.114:7788; | + | address 10.5.7.114:7788; |
| meta-disk internal; | meta-disk internal; | ||
| } | } | ||
| Line 117: | Line 122: | ||
| device /dev/drbd0; | device /dev/drbd0; | ||
| disk /dev/sdb; | disk /dev/sdb; | ||
| - | address 10.5.12.214:7788; | + | address 10.5.7.214:7788; |
| meta-disk internal; | meta-disk internal; | ||
| } | } | ||
| Line 136: | Line 141: | ||
| </code> | </code> | ||
| - | ===== Технология LXC (часть 1) ===== | + | ===== Шаг 4. Технология LXC (часть 1) ===== |
| * Рассказать про технологию в процессе создания образа | * Рассказать про технологию в процессе создания образа | ||
| Line 148: | Line 153: | ||
| node1:~# mkdir -p /disk2/var/lib/lxc/ | node1:~# mkdir -p /disk2/var/lib/lxc/ | ||
| - | node1:~# lxc-create -t debian -n server | + | node1:~# time lxc-create -t debian -n server |
| real 6m19.549s | real 6m19.549s | ||
| real 14m13.770s | real 14m13.770s | ||
| Line 154: | Line 159: | ||
| </code> | </code> | ||
| - | * Пока загружается образ, можно выполнить тему "Настройка bridge" и сделать перерыв | + | * Пока загружается образ, можно выполнить темы 12, 13, 5 и сделать перерыв |
| - | ===== Настройка bridge ===== | + | ===== Шаг 5. Настройка bridge ===== |
| <code> | <code> | ||
| node1:~# cat /etc/network/interfaces | node1:~# cat /etc/network/interfaces | ||
| Line 165: | Line 170: | ||
| auto br0 | auto br0 | ||
| iface br0 inet static | iface br0 inet static | ||
| - | address 10.5.12.114 | + | address 10.5.7.114 |
| netmask 255.255.255.0 | netmask 255.255.255.0 | ||
| - | gateway 10.5.12.254 | + | gateway 10.5.7.254 |
| bridge_ports eth0 | bridge_ports eth0 | ||
| </code><code> | </code><code> | ||
| Line 177: | Line 182: | ||
| auto br0 | auto br0 | ||
| iface br0 inet static | iface br0 inet static | ||
| - | address 10.5.12.214 | + | address 10.5.7.214 |
| netmask 255.255.255.0 | netmask 255.255.255.0 | ||
| - | gateway 10.5.12.254 | + | gateway 10.5.7.254 |
| bridge_ports eth0 | bridge_ports eth0 | ||
| </code> | </code> | ||
| - | ===== Технология LXC (часть 2) ===== | + | ===== Шаг 6. Технология LXC (часть 2) ===== |
| <code> | <code> | ||
| Line 192: | Line 197: | ||
| lxc.network.link = br0 | lxc.network.link = br0 | ||
| lxc.network.flags = up | lxc.network.flags = up | ||
| - | lxc.network.ipv4 = 10.5.12.123/24 | + | lxc.network.ipv4 = 10.5.7.123/24 |
| - | lxc.network.ipv4.gateway = 10.5.12.254 | + | lxc.network.ipv4.gateway = 10.5.7.254 |
| </code> | </code> | ||
| - | ===== Настройка дочерней системы ===== | + | ===== Шаг 7. Настройка дочерней системы ===== |
| <code> | <code> | ||
| Line 217: | Line 222: | ||
| 127.0.0.1 localhost | 127.0.0.1 localhost | ||
| - | 10.5.12.123 server | + | 10.5.7.123 server |
| </code><code> | </code><code> | ||
| server:/# cat /etc/resolv.conf | server:/# cat /etc/resolv.conf | ||
| </code><code> | </code><code> | ||
| - | nameserver 10.5.12.254 | + | nameserver 10.5.7.254 |
| </code> | </code> | ||
| - | ===== Запуск DRBD и LCX вручную ===== | + | ===== Шаг 8. Запуск DRBD и LCX вручную ===== |
| <code> | <code> | ||
| nodeN:~# init 0 | nodeN:~# init 0 | ||
| </code> | </code> | ||
| - | * В настройке сети обоих узлов разрешить "неразборчивый режим" | + | * В настройке сети обоих узлов разрешить "неразборчивый режим" для "всех" |
| <code> | <code> | ||
| !!! Одновременно !!! | !!! Одновременно !!! | ||
| Line 251: | Line 256: | ||
| </code> | </code> | ||
| - | * Пока устанавливается Asterisk, можно выполнить темы Corosync и Pacemaker | + | * Пока устанавливается Asterisk, можно сделать перерыв |
| - | ===== Пакет Corosync ===== | + | ===== Шаг 9. Минимальная настройка Asterisk ===== |
| - | <code> | + | |
| - | nodeN:~# apt install corosync | + | |
| - | + | ||
| - | nodeN:~# cat /etc/corosync/corosync.conf | + | |
| - | </code><code> | + | |
| - | ... | + | |
| - | bindnetaddr: 10.5.12.0 | + | |
| - | ... | + | |
| - | mcastaddr: 239.255.1.14 | + | |
| - | ... | + | |
| - | </code><code> | + | |
| - | nodeN:~# systemctl restart corosync | + | |
| - | + | ||
| - | nodeN:~# corosync-cmapctl | grep members | + | |
| - | </code> | + | |
| - | + | ||
| - | ===== Пакет Pacemaker (базовая конфигурация) ===== | + | |
| - | <code> | + | |
| - | nodeN:~# apt install pacemaker | + | |
| - | + | ||
| - | nodeN:~# crm_mon -1 | + | |
| - | + | ||
| - | node1:~# apt install crmsh | + | |
| - | + | ||
| - | node1:~# crm status | + | |
| - | + | ||
| - | node1:~# crm configure show | + | |
| - | + | ||
| - | node1:~# crm | + | |
| - | </code><code> | + | |
| - | configure property stonith-enabled=false | + | |
| - | configure property no-quorum-policy=ignore | + | |
| - | configure property default-resource-stickiness=100 | + | |
| - | configure show | + | |
| - | exit | + | |
| - | </code> | + | |
| - | + | ||
| - | ===== Минимальная настройка Asterisk ===== | + | |
| * Можно просто продемонстрировать анонимный звонок на номер 1000 | * Можно просто продемонстрировать анонимный звонок на номер 1000 | ||
| Line 334: | Line 301: | ||
| * Подключаем softphone и тестируем | * Подключаем softphone и тестируем | ||
| - | ===== Перемещение контейнера на другой узел вручную ===== | + | |
| + | ===== Шаг 10. Перемещение контейнера на другой узел вручную ===== | ||
| <code> | <code> | ||
| node1:~# lxc-stop -n server | node1:~# lxc-stop -n server | ||
| Line 355: | Line 323: | ||
| * через минуту, пере подключаем софтфон | * через минуту, пере подключаем софтфон | ||
| - | ===== Багфикс lxc для systemd ===== | + | ===== Шаг 11. Багфикс lxc для systemd ===== |
| <code> | <code> | ||
| node2:~# lxc-stop -n server | node2:~# lxc-stop -n server | ||
| Line 376: | Line 344: | ||
| node2:~# lxc-info -n server | node2:~# lxc-info -n server | ||
| </code> | </code> | ||
| - | ===== Управление местоположением контейнера с помощью Pacemaker ===== | + | |
| + | ===== Шаг 12. Пакет Corosync ===== | ||
| + | <code> | ||
| + | nodeN:~# apt install corosync | ||
| + | |||
| + | nodeN:~# cat /etc/corosync/corosync.conf | ||
| + | </code><code> | ||
| + | ... | ||
| + | bindnetaddr: 10.5.7.0 | ||
| + | ... | ||
| + | mcastaddr: 239.255.1.14 | ||
| + | ... | ||
| + | </code><code> | ||
| + | nodeN:~# systemctl restart corosync | ||
| + | |||
| + | nodeN:~# corosync-cmapctl | grep members | ||
| + | </code> | ||
| + | |||
| + | ===== Шаг 13. Пакет Pacemaker (базовая конфигурация) ===== | ||
| + | <code> | ||
| + | nodeN:~# apt install pacemaker | ||
| + | |||
| + | nodeN:~# crm_mon -1 | ||
| + | |||
| + | node1:~# apt install crmsh | ||
| + | |||
| + | node1:~# crm status | ||
| + | |||
| + | node1:~# crm configure show | ||
| + | |||
| + | node1:~# crm | ||
| + | </code><code> | ||
| + | configure property stonith-enabled=false | ||
| + | configure property no-quorum-policy=ignore | ||
| + | configure property default-resource-stickiness=100 | ||
| + | configure show | ||
| + | exit | ||
| + | </code> | ||
| + | |||
| + | ===== Шаг 14. Управление местоположением контейнера с помощью Pacemaker ===== | ||
| <code> | <code> | ||
| node2:~# umount /disk2 | node2:~# umount /disk2 | ||
| + | |||
| + | node2:~# drbdadm secondary r0 | ||
| nodeN:~# systemctl stop drbd | nodeN:~# systemctl stop drbd | ||
| Line 401: | Line 410: | ||
| </code> | </code> | ||
| - | ===== Проверки ===== | + | ===== Шаг 15. Проверки ===== |
| * "Убиваем" по очереди узлы | * "Убиваем" по очереди узлы | ||