| ВНИМАНИЕ: Архитектура Dion Active/Standby доступна начиная с версии DION 2026.03-p2. |
Проверьте требования к системе в разделе Планирование Dion Active/Standby.
Получите дистрибутивы у команды Dion:
|
Ниже описан способ развертывания Dion на примере операционной системы Ubuntu Server 22.04.5. Пример установки операционной системы Ubuntu Server 22.04.5 вы можете найти в документе Установка All-In-One. Способы развертывания на другие операционные системы могут отличаться. |
Разверните виртуальные машины согласно документу Планирование Dion Active/Standby.
Тип установки — минимальная.
| Данные действие необходимо выполнять на основном сервере dion узла Active и Standby. |
cd /home/dion/on_dion
2. Запустите скрипт конфигурации и ответьте на его вопросы:
./configurator.sh
После ответов на вопросы скрипт скачает необходимые дистрибутивы для вашего домена и установит локальный реестр. Время работы данного скрипта может занять больше часа (зависит от пропускной способности сети).
3. Заполните файл inventories/dion.<YourDomain>/hosts, указав hostname и IP-адреса серверов Dion.
nano /home/dion/on_dion/inventories/dion.<YourDomain>.com/hosts
|
При заполнении файла hosts важно учитывать, что реальные hostname виртуальных машин должны совпадать с именами в файле. Например, для виртуальной машины dion-vm:
|
Чтобы Docker был установлен на mediavm и turnvm, в блок [docker:children] добавьте mediavm и turnvm, а также замените hostname у машин в группах [mediavm] и [turnvm] как показано в примере:
Пример заполнения файла:
[dion:children]
appsvm
mediavm
sipserver
siptranslator
siptranscoder
videovm
turnvm
recordvm
chatvm
logs
monitoring
minio
consul
kafka
nats
redis
pgsql
clickhouse
iam
ewsadapter
roomsvm
[docker:children]
mediavm
turnvm
[clickhouse]
dion-vm ansible_host=10.0.0.130
[minio]
dion-vm ansible_host=10.0.0.130
[consul]
dion-vm ansible_host=10.0.0.130
[appsvm]
dion-vm ansible_host=10.0.0.130 st_customer_updater_enabled=true
[chatvm]
dion-vm ansible_host=10.0.0.130
[kafka]
dion-vm ansible_host=10.0.0.130 kafka_broker_id=1
[nats]
dion-vm ansible_host=10.0.0.130
[mediavm]
dion-media ansible_host=10.0.0.131
[pgsql]
dion-vm ansible_host=10.0.0.130
[redis]
dion-vm ansible_host=10.0.0.130
[recordvm]
dion-vm ansible_host=10.0.0.130
[sipserver]
dion-vm ansible_host=10.0.0.130
[siptranslator]
dion-vm ansible_host=10.0.0.130
[siptranscoder]
dion-vm ansible_host=10.0.0.130
[turnvm]
dion-turn ansible_host=10.0.0.132 external_address=188.64.151.175:3478
[turnregvm]
dion-vm ansible_host=10.0.0.130
[videovm]
dion-vm ansible_host=10.0.0.130
[iam]
dion-vm ansible_host=10.0.0.130
[logs]
dion-vm ansible_host=10.0.0.130 roles=data,master
[dcm]
dion-vm ansible_host=10.0.0.130
[monitoring]
dion-vm ansible_host=10.0.0.130
[ewsadapter]
dion-vm ansible_host=10.0.0.130 exchange_ews_connector_id=1
[roomsvm]
dion-vm ansible_host=10.0.0.130
| ВНИМАНИЕ: Использование файла hosts вместо DNS-сервера не поддерживается. |
1. Создайте A-записи на DNS-сервере внутренней зоны согласно требованиям на странице Планирование Dion Basic.
| Сервер Dion должен разрешать все имена через DNS-сервер и попадать на свой внутренний IP. |
2. Перейдите в каталог /home/dion/on_dion/scripts:
cd /home/dion/on_dion/scripts/
3. Запустите скрипт проверки DNS-записей, указав адрес предполагаемой главной страницы dion:
./dns_check_defis.sh dion.<YourDomain>.com
4. Убедитесь, что скрипт не выдал ошибок, а адрес dion.<YourDomain>.ru разрешается во внутренний VIP-адрес Dion. При необходимости исправьте DNS-записи.
| Заполните параметры DNS на узле Active и Standby |
5. Добавьте свой DNS в /home/dion/on_dion/inventories/dion.<YourDomain>.com/group_vars/all/vars.yaml:
- параметр configure измените на true, после чего добавьте свой DNS-сервер в параметр dns:
configure: true
dns:
- ip-адрес DNS-сервера
Чтобы два сервера получили информацию друг о друге, укажите их IP-адреса в файле /home/dion/on_dion/inventories/dion.<YourDomain>.com/group_vars/all/vars.yaml:
node_ips:
- 10.0.0.130
- 10.0.0.133
| Сделайте резервную копию каталога on_dion/inventories. В нем хранятся файлы конфигурации и ключи шифрования для восстановления данных Dion. |
| Данные действие необходимо выполнять на основном сервере dion узла Active. |
1. Создайте каталог certs:
mkdir /home/dion/on_dion/certs
2. Скопируйте в данный каталог ваш сертификат в формате:
3. Скопируйте сертификаты, заменив dion.<YourDomain>.com на имя вашего каталога:
cd /home/dion/on_dion/files/dion.<YourDomain>/certs/
cp /home/dion/certs/chain.pem web/rootCA.crt
cp /home/dion/certs/chain.pem service/rootCA.crt
cp /home/dion/certs/fullchain.pem web/server.crt
cp /home/dion/certs/fullchain.pem service/server.crt
cp /home/dion/certs/cert.pem ad/sso.crt
cp /home/dion/certs/privkey.pem web/server.key
cp /home/dion/certs/privkey.pem service/server.key
cp /home/dion/certs/privkey.pem ad/sso.key
sed -n 'p' /home/dion/certs/fullchain.pem /home/dion/certs/privkey.pem > web/haproxy.pem
| Данные действие необходимо выполнять на основном сервере dion узла Standby. |
4. Скопируйте каталог /home/dion/on_dion/files/dion.<YourDomain>/certs с узла Active на Standby:
scp -r dion@ip-адрес-active:/home/dion/on_dion/files/dion.<YourDomain>/certs /home/dion/on_dion/files/dion.<YourDomain>/certs
5. Скопируйте файл паролей с Active на Standby:
scp dion@ip-адрес-active:/home/dion/on_dion/inventories/dion.<YourDomain>/group_vars/all/vault.yaml /home/dion/on_dion/inventories/dion.<YourDomain>/group_vars/all/vault.yaml
| Выполните установку Dion на узел Active, после чего переключите DNS-запись на Standby и установите Dion. |
Чтобы установить компоненты Dion, выполните следующие действия на двух узлах:
1. Перейдите в каталог on_dion:
cd /home/dion/on_dion
2. Запустите установку компонентов Dion при помощи команды:
./dion.sh
Дождитесь окончания установки. Время выполнения данной команды может занять до 90 минут, в зависимости от скорости дисковой подсистемы.
3. Проверьте, что во время установки не было ошибок (failed=0):

После завершения установки ./dion.sh на узле Active запустите скрипт инициализации узла Active:
sudo bash /home/dion/on_dion/scripts/active_standby/init_active.sh init
По завершении инициализации будет получен вывод:

После инициализации узла Active выполните резервную копию clickhouse:
sudo bash /etc/dion/infra/clickhouse_init/conf/scripts/click_backup.sh full
На узле Standby выполните скрипт инициализации standby:
sudo bash /home/dion/on_dion/scripts/active_standby/init_standby.sh
По завершении инициализации будет получен вывод:

Для переключения работы Dion с узла Active на узел Standby выполните следующие действия:
1. Отключите узел Active: выключите машины узла Active, либо остановите работу docker:
sudo systemctl stop docker
2. Переключите работу DNS-записей на IP-адрес узла Standby.
3. На узле Standby выполните скрипт:
sudo bash /home/dion/on_dion/scripts/active_standby/init_active.sh promote
По завершении выполнения скрипта будет получен вывод:

Чтобы вернуть узлы Active и Standby в изначальное состояние, выполнить следующие команды:
1. Запустите узел Active.
2. Выполните скрипт на запущенном узле, чтобы он перешел в роль Standby. Это необходимо для синхронизации последних изменений.
sudo bash /home/dion/on_dion/scripts/active_standby/init_standby.sh

3. Выполните скрипт на запущенном узле, чтобы он перешел в роль Active:
sudo bash /home/dion/on_dion/scripts/active_standby/init_active.sh promote

4. Выполните скрипт на сервере, который ранее выполнял роль Active (переведите данный сервер в состояние Standby):
sudo bash /home/dion/on_dion/scripts/active_standby/init_standby.sh

5. Переключите работу DNS-записей на IP-адрес узла Active.