Проверьте требования к системе в разделе Планирование Dion Basic 2024.10
Получите дистрибутивы у команды Dion:
Ниже описан способ развертывания Dion на примере операционной системы Ubuntu Server 22.04.5.
Пример установки операционной системы Ubuntu Server 22.04.5 вы можете найти в документе Установка All-In-One
Способы развертывания на другие операционные системы могут отличаться.
Разверните виртуальные машины согласно документу Планирование Dion Basic 2024.10
Данное действие необходимо выполнить на всех серверах 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.
Данное действие необходимо выполнять на сервере dion-vm.
Для корректной работы Ansible требуется настройка безопасного доступа по SSH без запроса пароля для локального хоста на самого себя.
Подключитесь к серверу с помощью 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
Сервер dion-vm должен подключаться по SSH ко всем серверам Dion без ввода пароля.
Повторите действие “ssh-copy-id” для всех ip адресов серверов Dion.
Данное действие необходимо выполнять на сервере dion.
Установите 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
Добавьте пользователя 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 bash-completion
Данное действие необходимо выполнять на сервере dion.
Для выполнения данного шага потребуется:
Эти данные необходимо запросить у команды 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-2024.01-архив_playbook.gz
Данное действие необходимо выполнять на сервере dion.
Перейдите в директорию “/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
При заполнении файла hosts важно учитывать, что реальные hostname виртуальных машин должны совпадать с именами в файле. Для примера
dion-vm ansible_host=192.168.0.100
имя виртуальный машины будет dion-vm
В блок [docker:children] следует добавить mediavm и turnvm, как показано в примере, чтобы на них установился Docker
Пример заполнения файла:
[dion:children]
appsvm
mediavm
sipserver
siptranslator
siptranscoder
videovm
turnvm
recordvm
chatvm
log
monitoring
minio
consul
kafka
redis
pgsql
[docker:children]
mediavm
turnvm
[minio]
dion-vm ansible_host=192.168.0.100
[consul]
dion-vm ansible_host=192.168.0.100
[appsvm]
dion-vm ansible_host=192.168.0.100
[chatvm]
dion-vm ansible_host=192.168.0.100
[kafka]
dion-vm ansible_host=192.168.0.100 kafka_broker_id=1
[mediavm]
media-vm ansible_host=192.168.0.110
[pgsql]
dion-vm ansible_host=192.168.0.100
[redis]
dion-vm ansible_host=192.168.0.100
[recordvm]
dion-vm ansible_host=192.168.0.100
[sipserver]
dion-vm ansible_host=192.168.0.100
[siptranslator]
dion-vm ansible_host=192.168.0.100
[siptranscoder]
dion-vm ansible_host=192.168.0.100
[turnvm]
turn-vm ansible_host=192.168.0.200 external_ip=188.88.144.100
[videovm]
dion-vm ansible_host=192.168.0.100
[log]
dion-vm ansible_host=192.168.0.100 roles=data,master
[os_cluster]
dion-vm ansible_host=192.168.0.100 ip=192.168.0.100 roles=data,master
[master]
dion-vm ansible_host=192.168.0.100 roles=data,master
[dashboards]
dion-vm ansible_host=192.168.0.100 roles=data,master
[dcm]
dion-vm ansible_host=192.168.0.100
[monitoring]
dion-vm ansible_host=192.168.0.100
ВНИМАНИЕ: Использование файла hosts вместо DNS сервера не поддерживается.
Создайте A-записи на DNS сервере внутренней зоны согласно требованиям на странице Планирование Dion Basic 2024.10
Важно: Сервер Dion должен разрешать все имена через DNS сервер и попадать на свой внутренний ip.
Перейдите в директорию “/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 адрес Dion.
При необходимости исправьте DNS записи.
Если необходимо задать DNS сервер отличающийся от сервера на котором производится установка DION AIO (/etc/resolv.conf), то необходимо в файле
/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.
Создайте директорию certs:
mkdir /home/dion/on_dion/certs
Скопируйте в данную директорию ваш сертификат в формате:
Скопируйте сертификаты, заменив “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
Перейдите в директорию “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: