Проверьте требования к системе в разделе Планирование Dion Standard
Получите дистрибутивы у команды Dion:
Ниже описан способ развертывания Dion на примере операционной системы Ubuntu Server 22.04.4.
Способы развертывания на другие операционные системы могут отличаться.
Разверните виртуальные машины согласно документу Планирование Dion Standard
Данное действие необходимо выполнить на всех серверах Dion.
Для установки и администрирования Dion необходимо создать пользователя с определенными правами в системе.
Подключитесь к серверу с помощью SSH клиента с указанными учетными данными при установке.
Создайте пользователя “dion”:
sudo adduser dion
Добавьте пользователя dion в группу sudo:
sudo usermod -aG sudo dion
Установите текстовый редактор nano:
sudo apt-get update -y
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
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
Данное действие необходимо выполнять на сервере Setup VM.
Для выполнения данного шага потребуется:
Эти данные необходимо запросить у команды Dion.
ВНИМАНИЕ! Не распаковывайте архивы в ОС Windows. В этом случае потеряются символьные ссылки, а установка будет завершаться с ошибкой.
Перейдите в домашнюю папку пользователя “dion”:
cd /home/dion
Скачайте архив с Playbook, полученный у команды Dion используя ссылку и учетную запись.
Для этого можно использовать утилиту wget:
wget --user=имя_пользователя --password=пароль https://registry.onprem.dion.vc/архив_playbook
Распакуйте файл с помощью команды tar -xf имя_файла:
tar -xf on_dion-2024.01-dev-8.tar.gz
Данное действие необходимо выполнять на сервере Setup VM.
Перейдите в директорию “/home/dion/on_dion”:
cd /home/dion/on_dion
Запустите скрипт конфигурации и ответьте на его вопросы:
./configurator.sh
После ответов на вопросы скрипт скачает необходимые дистрибутивы для вашего домена и установит локальный реестр. Время работы данного скрипта может занять больше часа (зависит от пропускной способности сети).
Заполните файл inventories/dion.имя_домена/hosts, указав hostname и ip адреса серверов Dion.
nano /home/dion/on_dion/inventories/dion.dmbalias.com/hosts
Пример заполнения файла:
[dion:children]
lb_dion
lb_grpc
lb_infra
appsvm
mediavm
sipvm
videovm
turnvm
recordvm
chatvm
log
monitoring
pgsql
minio
[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
infra-ha-02 ansible_host=192.168.14.171
infra-ha-03 ansible_host=192.168.14.172
[redis:children]
redis_master
redis_slave
[redis_master]
infra-ha-01 ansible_host=192.168.14.170
[redis_slave]
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]
lbi-vm-01 ansible_host=192.168.14.176
lbi-vm-02 ansible_host=192.168.14.177
[lb_infra]
lbi-vm-01 ansible_host=192.168.14.178
lbi-vm-02 ansible_host=192.168.14.179
[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
[sipvm]
sip-vm-01 ansible_host=192.168.14.184
[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=1.2.3.4
[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]
mon-vm-01 ansible_host=192.168.14.121
Зарезервируйте ip адреса для балансировки и отредактируйте файл inventories/dion.имя_домена/group_vars/all/vars.yml указав виртуальные IP балансировщиков:
nano /home/dion/on_dion/inventories/dion.dmbalias.com/group_vars/all/vars.yml
Пример заполнения:
vip_dion: 192.168.14.70 #Введите IP адрес для приложения Dion
vip_grpc: 192.168.14.71 #Введите IP адрес для GRPC шлюза
vip_infra: 192.168.14.72 #Введите IP адрес для сервера инфраструктуры
ВНИМАНИЕ: Использование файла hosts вместо DNS сервера не поддерживается.
Создайте A-записи на DNS сервере внутренней зоны согласно требованиям на странице Планирование Dion Standard.
Все DNS записи dion для вашего домена должны указывать на ip vip_dion.
Серверы Dion должены разрешать все имена через DNS сервер.
Перейдите в директорию “/home/dion/on_dion”:
cd /home/dion/on_dion
Запустите скрипт проверки DNS записей, указав адрес предпологаемой главной страницы dion:
./dns_check_defis.sh dion.your_domain.com
Убедитесь, что скрипт не выдал ошибок, а адрес dion.yourdomain.ru разрешается во внутренний виртуальный ip адрес vip_dion.
При необходимости исправьте DNS записи.
Данное действие необходимо выполнять на сервере 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 server.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.yml | grep -i user_password: