Проверьте требования к системе в разделе Планирование Dion Basic.
Получите дистрибутивы у команды Dion:
|
Ниже описан способ развертывания Dion на примере операционной системы Ubuntu Server 22.04.5. Пример установки операционной системы Ubuntu Server 22.04.5 вы можете найти в документе Установка All-In-One. Способы развертывания на другие операционные системы могут отличаться. |
Разверните виртуальные машины согласно документу Планирование Dion Basic.
| Данное действие необходимо выполнить на всех серверах Dion. |
Для установки и администрирования Dion необходимо создать пользователя с определенными правами в системе.
1. Подключитесь к серверу с помощью SSH-клиента с указанными учетными данными при установке.
2. Создайте пользователя dion:
sudo adduser dion
3. Добавьте пользователя dion в группу sudo:
sudo usermod -aG sudo dion
4. Установите текстовый редактор nano:
sudo apt-get update -y
sudo apt-get install -y nano
Для корректной работы Ansible необходимо отключить запрос пароля при повышении привилегий участникам группы sudo.
Для этого необходимо отредактировать файл /etc/sudoers.
5. Наберите команду:
sudo visudo
6. Найдите в редакторе строку %sudo ALL=(ALL:ALL) ALL и замените ее на %sudo ALL=(ALL:ALL) NOPASSWD: ALL
7. Сохраните изменения с помощью сочетания клавиш Ctrl + o.
8. Закройте редактор с помощью сочетания клавиш Ctrl + x.
9. Проверьте, что в файле /etc/sudoers применились правильные значения:
sudo cat /etc/sudoers
10. Завершите сеанс пользователя командой exit.
| ВНИМАНИЕ: Все последующие операции необходимо производить от имени пользователя dion. |
| Данное действие необходимо выполнять на сервере dion-vm. |
Для корректной работы Ansible требуется настройка безопасного доступа по SSH без запроса пароля для локального хоста на самого себя.
1. Подключитесь к серверу с помощью SSH клиента с указанными учетными данными пользователя dion.
2. Создайте новую пару SSH-ключей:
ssh-keygen -t rsa
3. Оставьте пустыми ответы на вопросы, нажмите Enter 4 раза.
4. Скопируйте открытый SSH ключ на этот же сервер с помощью команды ssh-copy-id dion@ip-адрес_сервера_dion:
ssh-copy-id dion@10.0.0.130
5. Проверьте, что пользователь dion может подключиться к этому же серверу с помощью SSH без ввода пароля:
ssh dion@10.0.0.130
exit
Сервер dion-vm должен подключаться по SSH ко всем серверам Dion без ввода пароля.
6. Повторите действие ssh-copy-id для всех IP-адресов серверов Dion.
| Данное действие необходимо выполнять на сервере dion. |
1. Установите Docker.
Пример установки Docker для Ubuntu Server 22.04.5:
sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Инструкцию по установке Docker на другие операционные системы можно найти по ссылке Install Docker Engine.
2. Добавьте пользователя dion в группу docker:
sudo usermod -aG docker dion
3. Завершите сеанс пользователя Dion и подключитесь заново для применения настроек:
exit
Для удобства установки и администрирования Dion опционально можно установить дополнительное ПО:
sudo apt-get update
sudo apt-get install -y mc
sudo apt-get install -y bzip2
sudo apt-get install -y iputils-ping
sudo apt-get install -y dnsutils
sudo apt-get install -y htop
sudo apt-get install -y netcat
sudo apt-get install -y tcpdump
sudo apt-get install -y iperf
sudo apt-get install -y bash-completion
| Данное действие необходимо выполнять на сервере dion. |
Для выполнения данного шага потребуется:
Эти данные необходимо запросить у команды Dion.
| ВНИМАНИЕ: Не распаковывайте архивы в ОС Windows. В этом случае потеряются символьные ссылки, а установка будет завершаться с ошибкой. |
1. Перейдите в домашнюю папку пользователя dion:
cd /home/dion
2. Скачайте архив с Playbook, полученный у команды Dion, используя ссылку и учётную запись.
Для этого можно использовать утилиту wget:
wget --user=имя_пользователя --password=пароль https://registry.onprem.dion.vc/архив_playbook.gz
3. Распакуйте файл с помощью команды tar -xf имя_файла:
tar -xf on_dion-2024.01-архив_playbook.gz
| Данное действие необходимо выполнять на сервере dion. |
cd /home/dion/on_dion
2. Запустите скрипт конфигурации и ответьте на его вопросы:
./configurator.sh
После ответов на вопросы скрипт скачает необходимые дистрибутивы для вашего домена и установит локальный реестр. Время работы данного скрипта может занять больше часа (зависит от пропускной способности сети).
3. Заполните файл inventories/dion.<имя_домена>/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
redis
pgsql
clickhouse
iam
ewsadapter
[docker:children]
mediavm
turnvm
[clickhouse]
astra-dion-basic ansible_host=10.0.0.130
[minio]
astra-dion-basic ansible_host=10.0.0.130
[consul]
astra-dion-basic ansible_host=10.0.0.130
[appsvm]
astra-dion-basic ansible_host=10.0.0.130 st_customer_updater_enabled=true
[chatvm]
astra-dion-basic ansible_host=10.0.0.130
[kafka]
astra-dion-basic ansible_host=10.0.0.130 kafka_broker_id=1
[mediavm]
astra-dion-media ansible_host=10.0.0.131
[pgsql]
astra-dion-basic ansible_host=10.0.0.130
[redis]
astra-dion-basic ansible_host=10.0.0.130
[recordvm]
astra-dion-basic ansible_host=10.0.0.130
[sipserver]
astra-dion-basic ansible_host=10.0.0.130
[siptranslator]
astra-dion-basic ansible_host=10.0.0.130
[siptranscoder]
astra-dion-basic ansible_host=10.0.0.130
[turnvm]
astra-dion-turn ansible_host=10.0.0.132 external_address=188.64.151.175:3478
[turnregvm]
astra-dion-basic ansible_host=10.0.0.130
[videovm]
astra-dion-basic ansible_host=10.0.0.130
[iam]
astra-dion-basic ansible_host=10.0.0.130
[logs]
astra-dion-basic ansible_host=10.0.0.130 roles=data,master
[dcm]
astra-dion-basic ansible_host=10.0.0.130
[monitoring]
astra-dion-basic ansible_host=10.0.0.130
[ewsadapter]
astra-dion-basic ansible_host=10.0.0.130 exchange_ews_connector_id=1
| ВНИМАНИЕ: Использование файла 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 записи.
5. Добавьте свой DNS в /home/dion/on_dion/inventories/dion.<YourDomain>.com/group_vars/all/vars.yaml:
- параметр configure измените на true:
configure: true
- добавьте параметр dns:
dns:
- ip.адрес.dns.сервера
| Сделайте резервную копию директории on_dion/inventories. В ней хранятся файлы конфигурации и ключи шифрования для восстановления данных Dion. |
1. Создайте директорию certs:
mkdir /home/dion/on_dion/certs
2. Скопируйте в данную директорию ваш сертификат в формате:
3. Скопируйте сертификаты, заменив dion.<YourDomain>.com на имя вашей директории:
cd /home/dion/on_dion/files/dion.<YourDomain>.com/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, выполните следующие действия:
1. Перейдите в директорию on_dion:
cd /home/dion/on_dion
2. Запустите установку компонентов Dion при помощи команды:
./dion.sh
Дождитесь окончания установки. Время выполнения данной команды может занять до 90 минут, в зависимости от скорости дисковой подсистемы.
3. Проверьте, что во время установки не было ошибок (failed=0):

Откройте браузер и зайдите на домашнюю страницу Dion: https://dion.<YourDomain>.com
Аутентифицируйтесь под тестовым пользователем admin_onprem@diongo.ru
Пароль пользователя генерируется во время установки, его можно посмотреть командой:
cat /home/dion/on_dion/inventories/dion.<YourDomain>.com/group_vars/all/vault.yaml | grep -i user_password: