Эта статья относится к устаревшей версии Dion on-premise 2024.05
Документация по актуальной версии Dion on-premise 2024.10 доступна по ссылке.
Проверьте требования к системе в разделе Планирование Dion Standard 2024.05
Получите дистрибутивы у команды Dion:
Ниже описан способ развертывания Dion на примере операционной системы Ubuntu Server 22.04.4.
Способы развертывания на другие операционные системы могут отличаться.
Разверните виртуальные машины согласно документу Планирование Dion Standard 2024.05
Данное действие необходимо выполнить на всех серверах Dion.
Для установки и администрирования Dion необходимо создать пользователя с определенными правами в системе.
Подключитесь к серверу с помощью SSH клиента с указанными учетными данными при установке.
Создайте пользователя “dion”:
sudo adduser dion
Добавьте пользователя dion в группу sudo:
sudo usermod -aG sudo dion
Установите текстовый редактор nano:
sudo apt-get update
sudo apt-get install -y nano
Для корректной работы Ansible необходимо отключить запрос пароля при повышении привелегий участникам группы sudo.
Для этого необходимо отредактировать файл /etc/sudoers.
Наберите команду:
sudo visudo
Найдите в редакторе строку “%sudo ALL=(ALL:ALL) ALL” и замените ее на “%sudo ALL=(ALL:ALL) NOPASSWD: ALL”
Сохраните изменения с помощью сочетания клавиш “Ctrl + o”.
Закройте редактор с помощью сочетания клавиш “Ctrl + x”
Проверьте, что в файле /etc/sudoers применились правильные значения:
sudo cat /etc/sudoers
Завершите сеанс пользователя командой exit.
ВНИМАНИЕ! Все последующие операции необходимо производить от имени пользователя dion.
Данное действие необходимо выполнять на сервере Setup VM.
Для корректной работы Ansible требуется настройка безопасного доступа по SSH без запроса пароля для локального хоста на самого себя, а также на остальные серверы Dion.
Подключитесь к серверу Setup VM с помощью SSH клиента с указанными учетными данными пользователя dion.
Создайте новую пару SSH ключей:
ssh-keygen -t rsa
Оставьте пустыми ответы на вопросы, нажмите “Enter” 4 раза.
Скопируйте открытый SSH ключ на этот же сервер с помощью команды “ssh-copy-id dion@ip_адрессервера_dion”:
ssh-copy-id dion@192.168.14.70
Проверьте, что пользователь dion может подключиться к этому же серверу с помощью SSH без ввода пароля:
ssh dion@192.168.14.70
exit
Сервер Setup VM должен подключаться по SSH ко всем серверам Dion без ввода пароля.
Повторите действие “ssh-copy-id” для всех ip адресов серверов Dion.
Данное действие необходимо выполнять на сервере Setup VM.
Установите Docker.
Пример установки Docker для Ubuntu Server 22.04.4
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
Добавьте пользователя dion в группу docker:
sudo usermod -aG docker dion
Завершите сеанс пользователя 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 net-tools
Данное действие необходимо выполнять на сервере Setup VM.
Для выполнения данного шага потребуется:
Эти данные необходимо запросить у команды Dion.
ВНИМАНИЕ! Не распаковывайте архивы в ОС Windows. В этом случае потеряются символьные ссылки, а установка будет завершаться с ошибкой.
Перейдите в домашнюю папку пользователя “dion”:
cd /home/dion
Скачайте архив с Playbook, полученный у команды Dion используя ссылку и учетную запись.
Для этого можно использовать утилиту wget:
wget --user=имя_пользователя --password=пароль https://registry.onprem.dion.vc/архив_playbook.gz
Распакуйте файл с помощью команды tar -xf имя_файла:
tar -xf on_dion-архив_playbook.gz
Данное действие необходимо выполнять на сервере Setup VM.
Перейдите в директорию “/home/dion/on_dion”:
cd /home/dion/on_dion
Запустите скрипт конфигурации и ответьте на его вопросы:
./configurator.sh
После ответов на вопросы скрипт скачает необходимые дистрибутивы для вашего домена и установит локальный реестр. Время работы данного скрипта может занять больше часа (зависит от пропускной способности сети).
Заполните файл inventories/dion.YourDomain.com/hosts, указав hostname и ip адреса серверов Dion.
nano /home/dion/on_dion/inventories/dion.YourDomain.com/hosts
Пример заполнения файла:
[dion:children]
lb_dion
lb_grpc
lb_infra
appsvm
mediavm
sipserver
siptranslator
siptranscoder
videovm
turnvm
recordvm
chatvm
log
monitoring
minio
consul
kafka
redis
pgsql
[docker:children]
dion
[minio]
infra-ha-01 ansible_host=192.168.14.170
infra-ha-02 ansible_host=192.168.14.171
infra-ha-03 ansible_host=192.168.14.172
infra-ha-04 ansible_host=192.168.14.173
[consul]
infra-ha-01 ansible_host=192.168.14.170
infra-ha-02 ansible_host=192.168.14.171
infra-ha-03 ansible_host=192.168.14.172
[kafka]
infra-ha-01 ansible_host=192.168.14.170 kafka_broker_id=1
infra-ha-02 ansible_host=192.168.14.171 kafka_broker_id=2
infra-ha-03 ansible_host=192.168.14.172 kafka_broker_id=3
[redis]
infra-ha-01 ansible_host=192.168.14.170
infra-ha-02 ansible_host=192.168.14.171
infra-ha-03 ansible_host=192.168.14.172
[pgsql]
infra-ha-01 ansible_host=192.168.14.170
infra-ha-02 ansible_host=192.168.14.171
infra-ha-03 ansible_host=192.168.14.172
[lb_dion]
lb-vm-01 ansible_host=192.168.14.174
lb-vm-02 ansible_host=192.168.14.175
[lb_grpc]
lb-vm-01 ansible_host=192.168.14.176
lb-vm-02 ansible_host=192.168.14.177
[lb_infra]
lb-vm-01 ansible_host=192.168.14.176
lb-vm-02 ansible_host=192.168.14.177
[appsvm]
apps-vm-01 ansible_host=192.168.14.180
apps-vm-02 ansible_host=192.168.14.181
[mediavm]
media-vm-01 ansible_host=192.168.14.182
media-vm-02 ansible_host=192.168.14.183
[sipserver]
sip-vm-01 ansible_host=192.168.14.184
sip-vm-02 ansible_host=192.168.14.185
[siptranslator]
siptranslator-vm-01 ansible_host=192.168.14.196
siptranslator-vm-02 ansible_host=192.168.14.197
[siptranscoder]
siptranscoder-vm-01 ansible_host=192.168.14.198
siptranscoder-vm-02 ansible_host=192.168.14.199
[turnvm]
turn-vm-01 ansible_host=192.168.14.186 external_ip=1.2.3.4
turn-vm-02 ansible_host=192.168.14.187 external_ip=5.6.7.8
[recordvm]
record-vm-01 ansible_host=192.168.14.188
record-vm-02 ansible_host=192.168.14.189
[videovm]
video-vm-01 ansible_host=192.168.14.190
video-vm-02 ansible_host=192.168.14.191
[chatvm]
chats-vm-01 ansible_host=192.168.14.192
chats-vm-02 ansible_host=192.168.14.193
[log]
log-vm-01 ansible_host=192.168.14.122
[monitoring]
mon-vm-01 ansible_host=192.168.14.121
[dcm]
setup-vm-01 ansible_host=192.168.14.110
Зарезервируйте ip адреса (vip) для балансировки и отредактируйте файл inventories/dion.YourDomain.com/group_vars/all/vars.yaml указав виртуальные IP балансировщиков:
nano /home/dion/on_dion/inventories/dion.YourDomain.com/group_vars/all/vars.yaml
Пример заполнения виртуальных IP в файле vars.yaml:
vip_dion: 192.168.14.70 #Введите IP адрес для приложения Dion
vip_grpc: 192.168.14.71 #Введите IP адрес для GRPC шлюза
vip_infra: 192.168.14.72 #Введите IP адрес для сервера инфраструктуры
Укажите тип инсталляции PROD (режим DEV - используется только для разработки и отладки):
# Тип окружение DEV, PROD
env: PROD
ВНИМАНИЕ: Использование файла hosts вместо DNS сервера не поддерживается.
Создайте A-записи на DNS сервере внутренней зоны согласно требованиям на странице Планирование Dion Standard.
Все DNS записи dion для вашего домена должны указывать на ip vip_dion.
Серверы Dion должены разрешать все имена через DNS сервер.
Перейдите в директорию “/home/dion/on_dion/scripts”:
cd /home/dion/on_dion/scripts/
Запустите скрипт проверки DNS записей, указав адрес предпологаемой главной страницы dion:
./dns_check_defis.sh dion.your_domain.com
Убедитесь, что скрипт не выдал ошибок, а адрес dion.yourdomain.ru разрешается во внутренний виртуальный ip адрес vip_dion.
При необходимости исправьте DNS записи.
Если для серверов Dion необходимо задать DNS сервер отличающийся от сервера на котором производится установка DION AIO (/etc/resolv.conf), то необходимо в файле
/home/dion/on_dion/inventories/dion.YourDomain.com
/group_vars/all/vars.yaml внести изменения:
параметр configure изменить на true и прописать адрес DNS сервера:
configure: yes
dns:
- ip.адрес.dns.сервера
Сделайте резервную копию директории “on_dion/inventories”. В ней хранятся файлы конфигурации и ключи шифрования для восстановления данных Dion.
Данное действие необходимо выполнять на сервере Setup VM.
Создайте директорию certs:
mkdir /home/dion/on_dion/certs
Скопируйте в данную директорию ваш сертификат в формате:
Скопируйте сертификат, заменив “dion.YourDomain.com” на имя вашей директории :
cd /home/dion/on_dion/certs/
cp rootCA.crt /home/dion/on_dion/files/dion.YourDomain.com/certs/web/rootCA.crt
cp rootCA.crt /home/dion/on_dion/files/dion.YourDomain.com/certs/service/rootCA.crt
cp server.crt /home/dion/on_dion/files/dion.YourDomain.com/certs/web/server.crt
cp server.crt /home/dion/on_dion/files/dion.YourDomain.com/certs/service/server.crt
cp sso.crt /home/dion/on_dion/files/dion.YourDomain.com/certs/ad/sso.crt
cp server.key /home/dion/on_dion/files/dion.YourDomain.com/certs/web/server.key
cp server.key /home/dion/on_dion/files/dion.YourDomain.com/certs/service/server.key
cp server.key /home/dion/on_dion/files/dion.YourDomain.com/certs/ad/sso.key
sed -n 'p' server.crt server.key > /home/dion/on_dion/files/dion.YourDomain.com/certs/web/haproxy.pem
Данное действие необходимо выполнять на сервере Setup VM.
Перейдите в директорию “on_dion”:
cd /home/dion/on_dion
Запустите установку компонентов dion при помощи команды:
./dion.sh
Дождитесь окончания установки. Время выполнения данной команды может занять до 90 минут, в зависимости от скорости дисковой подсистемы.
Проверьте, что во время установки не было ошибок (failed=0):
Откройте браузер и зайдите на домашнюю страницу Dion: https://dion.YourDomain.com
Аутентифицируйтесь под тестовым пользователем “admin_onprem@diongo.ru”
Пароль пользователя генерируется во время установки, его можно посмотреть командой:
cat /home/dion/on_dion/inventories/dion."имя_домена"/group_vars/all/vault.yaml | grep -i user_password:
Обратите внимание на страничку с известными проблемами 2024.05